而不是使用excel软件手动将csv文件转换为文本选项卡分隔的文件

我想使用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: dict包含的字段不在字段名中:无
我能知道我哪里做错了吗
csv文件可以通过以下链接访问
提前感谢您的任何见解。
发布于 2020-07-06 16:59:34
您可以使用名为pandas的Python包来执行以下操作:
import pandas as pd
fname = '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) -将pd.DataFrame写入fname给出的CSV文件。sep='\t' -用制表符替换CSV中使用的','index=False -使用它移除行号如果您想要更高级一些,并且只使用命令行,您可以这样做:
# csv-to-tsv.py
import sys
import pandas as pd
fnames = 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文件更改为.tsv文件:
python csv-to-tsv.py *.csv发布于 2020-07-06 17:22:13
这是错误的逗号分开的作者名称。下划线行中的列似乎超过了标题的数量。
https://stackoverflow.com/questions/62760619
复制相似问题