用于处理CSV的最简单的脚本语言

问题描述:

由于易于学习的语法,我喜欢使用Python,但是,最近我发现它不支持CSV中的UTF-8。由于我经常使用CSV,这对我来说似乎是一个严重的问题。是否还有另一种脚本语言,当我需要管理真正大型的CSV UTF-8文件时,我可以学习到一种简单的语法?用于处理CSV的最简单的脚本语言

+0

不会是更好地询问是否有一个UTF-8/Unicode的支持csv模块的版本? –

+0

是否有支持UTF-8的CSV模块版本?我阅读了文档,它说不。另外,我自己尝试了一些代码(在Python 2.6.6中),我的汉字变成了一串简短的字符串。 – Village

我推荐使用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

如果你正在处理的命令,并且可以安装其他命令行工具,我强烈推荐csvfix

安装完成后,您可以强健查询任何csv文件,例如

csvfix order -f 1,3 file.csv 

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

有命令的完整列表here

看到这个相关question