2014-02-11 49 views
0

我有一個CSV文件是這樣的:CSV憑證蟒蛇一個襯墊

name,username 
name2,username2 
etc... 

我需要提取每列進名單,這樣我可以創建一個帳戶(管理腳本)。
我希望的結果是這樣的:

NAMES=(name name2) 
MAILS=(username username2) 
LENGHT=3 # number of lines in csv files actually 

我想這樣做在python(因爲我在我的腳本的其他地方使用它,並希望我的同事轉換爲黑暗的一面)。 Exept,我不是一個真正的蟒蛇用戶...
像這樣的事情會做的伎倆(我認爲):

NAMES=($(echo "$csv" | pythonFooMagic)) 
MAILS=($(echo "$csv" | python -c "import sys,csv; pythonFooMagic2")) 
LENGHT=$(echo "$csv" | pythonFooMagic3) 

我有種發現TUTOS做到這一點進行的跨幾行,但粘在一起很醜陋。
必須有一些很酷的方法來做到這一點。否則我會辭職以使用sed ...任何想法?

編輯:確定好主意,以供將來參考,請評論

+6

使用其他腳本語言來製作*單獨的* shell變量ISN」 t確實有效或簡單。爲什麼不把Python用於*整個*作業並完全放棄shell呢? –

+0

是的,我明白,但我侷限於bash作爲先決條件。我可以很好地使用剪切和尾部來提取csv,但它並不好玩。 – tastadmoon

+0

使用其他工具可能並不好玩,但是讓Python運行3次(不完全是最輕的過程)並沒有什麼好處,甚至更糟。要麼堅持使用標準的命令行工具,要麼完全使用Python。這就是說... –

回答

0

你可以使用一個臨時文件,如:

tmpfile=$(mktemp) 
# Python script produces the variables you want 
pythonFooMagic <csv> $tmpfile 
# Here you take the variables somehow. For example... 
source $tempfile 
rm $tmpfile