2011-11-05 99 views
0

由於易於學習的語法,我喜歡使用Python,但是,最近我發現它不支持CSV中的UTF-8。由於我經常使用CSV,這對我來說似乎是一個嚴重的問題。是否還有另一種腳本語言,當我需要管理真正大型的CSV UTF-8文件時,我可以學習到一種簡單的語法?用於處理CSV的最簡單的腳本語言

+0

不會是更好地詢問是否有一個UTF-8/Unicode的支持csv模塊的版本? –

+0

是否有支持UTF-8的CSV模塊版本?我閱讀了文檔,它說不。另外,我自己嘗試了一些代碼(在Python 2.6.6中),我的漢字變成了一串簡短的字符串。 – Village

回答

1

我推薦使用gawk。例如爲:

awk -F ";" '{print $1 ";" $2}' FILE.csv 

將打印FILE.CSV的前兩個(;分離)柱。用UTF-8正常工作,你應該使用它喜歡:

LC_ALL = C AWK 'BEGIN {打印長度( 「árvíztűrőtükörkúrópék」)}' => 30 LC_ALL = en_US.utf8 AWK「BEGIN {打印長度( 「árvíztűrőtükörkúrópék」)}」 => 21

(或者你也可以全局設置LC_ALL如果你使用UTF-8的時候,而你在* nix,例如.bashrcexport LC_ALL=en_US.utf8

awk是一個古老但功能強大且快速的工具。

HTH

+0

此解決方案是否會處理編碼分隔符的csv文件? – Joel

+0

像這樣:https://ideone.com/bLPPf? (注意,我沒有設置'OFS',所以它默認是空格。) –

+1

不完全。我的意思是在分隔的字符串中編碼分隔符,例如'a,b,'c,d「,e'是一個csv編碼的字符串,4列(第三個字符串是'c,d') – Joel

2

如果你正在處理的命令,並且可以安裝其他命令行工具,我強烈推薦csvfix

安裝完成後,您可以強健查詢任何csv文件,例如

csvfix order -f 1,3 file.csv 

將提取csv的第1列和第3列。

有命令的完整列表here

看到這個相關question

相關問題