簡體   English   中英

如何使用python寫入.csv文件

[英]How do I write to a .csv file with python

我使用Python3.6編寫了一個簡單的腳本,並使用csv模塊創建了一個csv文件。 我的代碼附在下面,是我在網上找到的多個示例的副本,但是當我運行代碼時,出現錯誤消息TypeError: a bytes-like object is required, not a 'str'

import csv
File_Name = Test.csv
with open(File_Name, 'wb') as csvfile:
   filewriter = csv.writer(csvfile,delimiter=',')
   filewriter = writerow(['Paul','Mary'])

不應將csvwriter實例重新分配給它。 應該用來寫行。

在python 3中,您應該按照文檔的說明newline=''以只寫模式打開文件

import csv

filename = 'Test.csv'

with open(filename, 'w', newline='') as csvfile:
   file_writer = csv.writer(csvfile,delimiter=',')
   file_writer.writerow(['Paul','Mary'])

如果不需要二進制模式,可以使用以下命令:

with open(File_Name, 'w') as csvfile:
   filewriter = csv.writer(csvfile,delimiter=',')
   filewriter.writerow(['Paul','Mary'])

檢查此處的表以查看有關可用不同模式的詳細信息。

您必須從“ wb”更改為“ w”,文件名應用引號引起來(“ Test.csv”或“ Test.csv”),請參見下文

import csv
File_Name = "Test.csv"
with open(File_Name, 'w') as csvfile:
    filewriter = csv.writer(csvfile,delimiter=',')
    filewriter.writerow(['Paul','Mary'])

問題是您以二進制模式打開了文件

with open(File_Name, 'wb') as csvfile:

這意味着從文件讀取的所有數據都以字節對象而不是str返回。 如果不需要,請嘗試:

with open(File_Name, 'w') as csvfile:

你也應該使用writerow方法的csvwriter ,而不是重新分配它:

file_writer.writerow(['Paul','Mary'])

暫無
暫無

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

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