gpt4 book ai didi

python - 使用 CSV 编写器在分隔符后插入空格

转载 作者:行者123 更新时间:2023-11-28 16:49:16 25 4
gpt4 key购买 nike

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="; " 会解决我的问题。

最佳答案

您可以将您的 file 对象包装在添加空格的代理中:

>>> class DelimitedFile(file):
... def write(self, value):
... super(DelimitedFile, self).write(value.replace(";", "; "))
...
>>> f = DelimitedFile("foo", "w")
>>> f.write("hello;world")
>>> f.close()
>>> open("foo").read()
'hello; world'

关于python - 使用 CSV 编写器在分隔符后插入空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9771703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com