错误似乎来自于使用Python 3,但使用Python 2要求打开
csv
文件夹。如果使用Python 3,CSV文件不应以二进制模式打开,换行符参数应为空字符串。临时文件也默认为二进制模式,所以我已经覆盖了它。我还将以下内容用作输入文件,这是从代码中推导出来的,因为没有提供示例输入。
id,name,email
id1,name1,email1
id2,name2,email2
Python 3代码:
import csv
import shutil
from tempfile import NamedTemporaryFile
filename = 'appendpyt2.csv'
temp_file = NamedTemporaryFile(mode='w+',newline='',delete= False)
with open(filename,newline='') as csvfile, temp_file:
reader =csv.DictReader(csvfile)
filename = ["id", "name", "email", "amount", "sent"]
writer= csv.DictWriter(temp_file, fieldnames = ["id", "name", "email","amount", "sent"])
writer.writeheader()
for row in reader:
print(row)
writer.writerow({
"id": row["id"],
"name": row["name"],
"email":row["email"],
"amount":"1234.56",
"sent": ""
})
临时文件输出:
id,name,email,amount,sent
id1,name1,email1,1234.56,
id2,name2,email2,1234.56,