我有一个约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)
您在阅读时错过了分隔符。默认情况下,它查找逗号,因为不是这种情况,您必须指定定界符:
reader = csv.reader(infile, dialect="excel",delimiter=";")
并且您不必在写时用逗号作为分隔符,因为它是默认的。
或者最简单的方法是使用pandas包:
import pandas as pd
df=pd.read_csv(infile,sep=';')
df.to_csv(infile,index=False)