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