簡體   English   中英

用Python寫一個CSV文件:函數writerows錯誤

[英]Write a csv file in Python : error with function writerows

嘗試將列表列表保存到csv文件中時,我使用了csv模塊。 這是我的腳本:

import csv
a = [[1.2,'abc',3],[1.2,'werew',4],[1.4,'qew',2]]
with open("output.csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(a)

當我運行此腳本時,出現錯誤消息:

Traceback (most recent call last):
File "csv-ex.py", line 5, in <module>
writer.writerows(a)
TypeError: a bytes-like object is required, not 'str'

有人知道缺少什么嗎?

您以二進制模式打開文件,但是csv.writer()對象發送字符串。

拖放b以文本模式打開文件。 還建議您設置newline=''

with open("output.csv", "w", newline='') as f:

參見csv模塊腳注

如果未指定newline=''則嵌入引號中的換行符將無法正確解釋,並且在使用\\r\\n linendings的平台上將添加額外的\\r 指定newline=''應該總是安全newline='' ,因為csv模塊會執行自己的(通用)換行符處理。

在Python 2中,出於相同的原因,建議以二進制模式打開文件,但是Python 3中的I / O層使用newline選項可以更好地處理此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM