我的csv文件使用分号作为分隔符。我可以用
打开它r = csv.reader(infile, delimiter=";")
没有任何问题。问题是我想将文件作为字典打开。 csv.DictReader
类没有delimiter
选项。
我的代码:
import os
import csv
fields = ["Buchungstag", "Buchungstext", "Beguenstigter/Zahlungspflichtiger", "", "", "Betrag", "Verwendungszweck"]
with open("bank.csv") as infile, open("temp2.csv", "w", newline="") as outfile:
r = csv.DictReader(infile)
w = csv.DictWriter(outfile, fields, extrasaction="ignore")
w.writeheader()
for row in r:
w.writerow(row)
我尝试打开文件并仅加载某些字段,如果我事先修改了文件,将;
替换为,
(我为此使用了notepad ++),则可以正常工作–但我想跳过这部分并直接打开文件。
答案 0 :(得分:1)
DictReader
和DictWriter
都接受包含delimiter
的任意参数,并将它们传递给基础的reader
或writer
对象,如文档所述:
class
csv.DictReader
(…)所有其他可选参数或关键字参数都传递给基础的
reader
实例。
class
csv.DictWriter
(…)任何其他可选参数或关键字参数都传递给基础的
writer
实例。
将上面代码中的相关行更改为
r = csv.DictReader(infile, delimiter=";")
应能按预期工作。