使用python在csv中更改分隔符
Posted
技术标签:
【中文标题】使用python在csv中更改分隔符【英文标题】:Delimiter change in csv using python 【发布时间】:2020-02-22 01:09:57 【问题描述】:我有一个大约 30000 行的 .csv 文件。实现的默认分隔符是分号。我用 python 创建了一个小脚本,它将分隔符转换为逗号并将其保存在同一个文件中。该脚本运行没有任何错误,但最后什么也不做。分隔符仍然是分号。 .txt 文件已创建,但它不会写回主文件。我使用的代码如下:
import csv
from pathlib import Path
import os
cwd = os.getcwd() # Get the current working directory (cwd)
files = os.listdir(cwd) # Get all the files in that directory
print("Files in %r: %s" % (cwd, files))
with open('RadGridExport.csv', mode='r', encoding='utf-8') as infile:
reader = csv.reader(infile, dialect="excel")
with open('temp.txt', mode='w', encoding='utf-8') as outfile:
writer = csv.writer(outfile, delimiter=',')
writer.writerows(reader)
【问题讨论】:
【参考方案1】:您在阅读时错过了分隔符。默认情况下,它会查找逗号,因为您不必指定分隔符:
reader = csv.reader(infile, dialect="excel",delimiter=";")
而且你不需要在写作时提到逗号作为分隔符,因为它是默认的。
或者最简单的方法是使用pandas包:
import pandas as pd
df=pd.read_csv(infile,sep=';')
df.to_csv(infile,index=False)
【讨论】:
非常感谢您的回答。但它仍然没有做任何事情。我尝试创建另一个演示 csv 文件,但这不是 csv 文件的问题。还在调试解决方案以上是关于使用python在csv中更改分隔符的主要内容,如果未能解决你的问题,请参考以下文章
在 Python Pandas 中使用多个字符分隔符 read_csv