2014-03-12 11 views

回答

14
  • 在Python 2中:以二進制模式打開文件,始終; csv.DictWriter()寫道:\r\n行結尾:

    with open(filename, 'ab') as outputfile: 
        writer = csv.DictWriter(outputfile, fieldnames) 
    

    csv.writer() documentation

    如果csvfile是一個文件對象,它必須與平臺上的「B」標誌,在有差別打開。

  • 在Python 3:打開文件,newline=''所以csv.DictWriter()可以控制不翻譯寫的換行符:

    with open(filename, 'a', newline='') as outputfile: 
        writer = csv.DictWriter(outputfile, fieldnames) 
    

    再次引述相關csv.writer() documenation

    如果csvfile是一個文件對象,它應該用newline=''打開

    [...]

    如果newline=''沒有指定,嵌入式引述領域內的換行符將無法正確解釋,並且在使用上寫一個額外的\r將被添加\r\n linendings平臺。指定newline=''應始終安全,因爲csv模塊執行自己的(通用)換行處理。

相關問題