【发布时间】:2012-03-19 14:11:07
【问题描述】:
f = open("file1.csv", "r")
g = open("file2.csv", "w")
a = csv.reader(f, delimiter=";", skipinitialspace=True)
b = csv.writer(g, delimiter=";")
for line in a:
b.writerow(line)
在上面的代码中,我尝试使用Python2.7中的csv模块加载file1.csv,然后使用csv.writer将其写入file2.csv。
我的问题来自输入文件中分隔符后的现有空格(单个空格字符)。我需要删除它们以便稍后进行一些数据操作,所以我为读者使用了skipinitialspace=True 参数。但是,我无法让作者在分隔符之后打印空格字符,因此会干扰这两个文件的任何后续 diffing。
我尝试使用Sniffer 类来自动生成Dialect,但我猜我的输入文件(来自一个大型复杂的遗留系统,有几十个字段以及糟糕的引用和转义)被证明也是这很复杂。
简而言之,我正在寻找以下问题的答案:
- 如何在
writer中的每个分隔符后插入空格字符? - 顺便问一下,禁止使用多字符串作为分隔符的原因是什么?
delimiter="; "会解决我的问题。
【问题讨论】: