无法在Python中将csv文件转换为文本选项卡分隔的文件

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

无法在Python中将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文件

在此先感谢您的见解。

iCMS 回答:无法在Python中将csv文件转换为文本选项卡分隔的文件

您可以使用名为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',index=False)

这将允许您从命令行运行这样的命令,并一次性将所有.csv文件更改为.tsv文件:

python csv-to-tsv.py *.csv
,

使用逗号分隔的作者姓名有误。下划线行中的列似乎超过了标题的数量。

本文链接:https://www.f2er.com/1989554.html

大家都在问