[英]Unable to convert csv file to text tab delimited file in Python
而不是使用 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:字典包含不在字段名中的字段:無
請問我哪里做錯了
csv
文件可通過以下鏈接訪問
提前感謝您的任何見解。
您可以使用名為 pandas 的 Python pandas
來執行此操作:
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
object (對於此示例不重要)
.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
文件更改為一個 go 中的.tsv
文件:
python csv-to-tsv.py *.csv
它在逗號分隔的作者姓名上出錯。 下划線行中的列似乎超過了標題的數量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.