gpt4 book ai didi

Python3 DictWriter 在 Linux 上使用 CRLF 而不是 LF

转载 作者:太空狗 更新时间:2023-10-29 11:44:33 24 4
gpt4 key购买 nike

问题:

在 Python 3 中,我使用 csv.DictWriter 向现有文件追加一行。但是,正在使用 CRLF 行结尾而不是预期的 LF 行结尾。

代码示例:

#!/usr/bin/env python3
import csv

with open("test.csv", 'a', newline='') as test_f:
test_csv = csv.DictWriter(test_f, delimiter='|', fieldnames=['1', '2'])
test_csv.writerow({'1': "test1", '2': "test2"})

预期结果:

$ cat -e test.csv
test1|test2$

实际结果:

$ cat -e test.csv
test1|test2^M$

注意事项:

  • 现有文件的文件格式是“unix”,而不是“dos”。
  • 我试过设置newline为 None(默认值)和 '\n'(即使这应该是不必要的,因为默认值是 os.linedep,在 Linux 上已经是 '\n'),但结果是一样的。

最佳答案

通过指定 lineterminator , 你可以控制它。

test_csv = csv.DictWriter(
test_f,
delimiter='|',
lineterminator='\n', # <--------
fieldnames=['1', '2'])

关于Python3 DictWriter 在 Linux 上使用 CRLF 而不是 LF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25591756/

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