无法将 csv 文件转换为 Python 中的文本制表符分隔文件

而不是csv使用 excel 软件手动将文件转换为文本制表符分隔文件

http://img3.mukewang.com/63f5dbc500018d8606550042.jpg

我想使用 Python 自动执行此过程。

但是,使用以下代码

with open('endnote_csv.csv', 'r') as fin: 
      with open('endnote_deliminated.txt', 'w', newline='') as fout:
           reader = csv.DictReader(fin, delimiter=',')
           writer = csv.DictWriter(fout, reader.fieldnames, delimiter='|')
           writer.writeheader()
           writer.writerows(reader)

返回错误

ValueError:字典包含不在字段名中的字段:无

我可以知道我哪里做错了吗

csv文件可通过以下链接访问

提前感谢您的任何见解。


达令说
浏览 107回答 2
2回答

www说

您可以使用调用的 Python 包pandas来执行此操作:import pandas as pdfname = 'endnote_csv'pd.read_csv(f'{fname}.csv').to_csv(f'{fname}.tsv', sep='\t', index=False)它是这样工作的:pd.read_csv(fname)- 读取 CSV 文件并将其存储为一个pd.DataFrame对象(对于本例不重要).to_csv(fname)- 将 apd.DataFrame写入 CSV 文件fnamesep='\t'-','用制表符替换 CSV 中使用的index=False- 使用它来删除行号如果你想更高级一点并且只使用命令行,你可以这样做:# csv-to-tsv.pyimport sysimport pandas as pdfnames = sys.argv[1:]for fname in fnames:    main_name = '.'.join(fname.split('.')[:-1])    pd.read_csv(f'{main_name}.csv').to_csv(f'{main_name}.tsv', sep='\t', index=False)这将允许您从命令行运行这样的命令,并一次性将所有.csv文件更改为文件:.tsvpython csv-to-tsv.py *.csv

慕姐4208626

它在逗号分隔的作者姓名上出错。下划线行中的列似乎超过了标题数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python