2
問題:Python3 DictWriter使用CRLF,而不是LF在Linux上
在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$
說明:
- 現有文件的fileformat是「unix」,而不是「dos」。
- 我已經嘗試將newline設置爲無(默認值)和'\ n'(即使這應該是不必要的,因爲默認值是os.linedep,在Linux上它已經是'\ n'),但結果是一樣的。