不是使用Excel软件将csv
文件手动转换为文本制表符分隔的文件
我想使用Python自动执行此过程。
不过,请使用以下code
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包含不在字段名称中的字段:无
我可以知道我在哪里做错了
可以通过以下link
访问csv
文件
在此先感谢您的见解。
答案 0 :(得分:1)
您可以使用名为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
答案 1 :(得分:0)
使用逗号分隔的作者姓名有误。下划线行中的列似乎超过了标题的数量。