0
我有类似如下的CSV:如何更换用分号逗号而不是引号内
"blah blah, foo bar", 1, 454, ok, eng
blah blah foo bar, 2, 21, ko, esp
...
我需要更换字段之间逗号到分号,所以我可以拆分正确CSV。但是,不要那些内心深处的人。
我需要或正则表达式o一个小脚本(python,groovy,bash ...)来解决这个问题。
我有类似如下的CSV:如何更换用分号逗号而不是引号内
"blah blah, foo bar", 1, 454, ok, eng
blah blah foo bar, 2, 21, ko, esp
...
我需要更换字段之间逗号到分号,所以我可以拆分正确CSV。但是,不要那些内心深处的人。
我需要或正则表达式o一个小脚本(python,groovy,bash ...)来解决这个问题。
考虑。演示:
from csv import reader, writer
with open('input.csv') as inp, open('output.csv', 'w') as out:
writer(out, delimiter=';').writerows(reader(inp))
文件内容:
$ cat input.csv
"blah blah, foo bar", 1, 454, ok, eng
blah blah foo bar, 2, 21, ko, esp
$ cat output.csv
blah blah, foo bar; 1; 454; ok; eng
blah blah foo bar; 2; 21; ko; esp
import csv
infile = open("inputfile.csv", "r")
outfile = open("outputfile.csv", "w")
csvReader = csv.reader(infile)
for line in csvReader:
outfile.write(";".join(line) + "\n")
infile.close()
outfile.close()
测试关于Python 2.7和3.5
输出上的例子:使用Python的csv
模块
blah blah, foo bar; 1; 454; ok; eng
blah blah foo bar; 2; 21; ko; esp
你需要在'bash'或'python'解决方案? – anubhava
同意tim_yates。这是一个[XY问题](http://www.perlmonks.org/?node_id=542341):你说你想把逗号改成分号,但你真正想做的是解析一个CSV文件,而你试图将逗号更改为分号以作为此操作的一部分。你应该改用Python的'csv'模块。尽管如此,道具将CSV位置入您的问题!否则,我们只是告诉你如何做替代,你仍然在浪费你的时间重新发明轮子。 – kindall