hol*_*erm 7 python csv excel bank python-3.x
我的 csv 文件以分号作为分隔符。我可以用以下命令打开它
\n\nr = csv.reader(infile, delimiter=";")\n
Run Code Online (Sandbox Code Playgroud)\n\n没有任何问题。问题是我想将文件作为字典打开。班级csv.DictReader
没有这个delimiter
选项。
我的代码:
\n\nimport os\nimport csv\nfields = ["Buchungstag", "Buchungstext", "Beguenstigter/Zahlungspflichtiger", "", "", "Betrag", "Verwendungszweck"]\n\nwith open("bank.csv") as infile, open("temp2.csv", "w", newline="") as outfile:\n r = csv.DictReader(infile)\n w = csv.DictWriter(outfile, fields, extrasaction="ignore")\n w.writeheader()\n for row in r:\n w.writerow(row)\n
Run Code Online (Sandbox Code Playgroud)\n\n我尝试打开文件并仅加载某些字段,如果我事先修改文件,将其替换为;
(,
我为此使用记事本++)\xe2\x80\x93,则该字段有效,但我想跳过这部分并直接打开文件。
Zer*_*eus 15
和DictReader
都DictWriter
接受任意参数,包括delimiter
,并将它们传递给底层reader
或writer
对象,如文档所述:
\n\n\n\n\n类
\n\ncsv.DictReader
(\xe2\x80\xa6)所有其他可选参数或关键字参数都传递给底层
\nreader
实例。
\n\n\n类
\n\ncsv.DictWriter
(\xe2\x80\xa6)任何其他可选参数或关键字参数都会传递给底层
\nwriter
实例。
将上面代码中的相关行更改为
\n\n r = csv.DictReader(infile, delimiter=";")\n
Run Code Online (Sandbox Code Playgroud)\n\n应该按预期工作。
\n