Python CSV更改分隔符

时间:2017-07-22 15:16:31

标签: python csv

对于一个研究项目,我有许多csv文件,我需要将它们从逗号(,)更改为分隔为分号(;)。所以我只需要更改分隔符。

我通常在Excel中执行此操作,但这需要大量工作。而且我需要分别为每个文件执行此操作,而Excel需要花费大量时间来完成它。

我制作了一个输入输出文件夹。 这在以下代码中工作正常。 问题是:

  1. 逗号不会以分号更改。
  2. 由于某种原因它添加了一个空行,我不知道为什么会这样做。
  3. 有人可以提供一些提示吗?

    import csv 
    from pathlib import Path
    
    folder_in = Path(r'C:\convert\Trajectory\In') 
    folder_out = Path(r'C:\convert\Trajectory\Out')
    
    for incsv in folder_in.iterdir():
        outcsv = folder_out.joinpath(incsv.name)
        with open(str(incsv), 'r') as fin, open(str(outcsv), 'w') as fout:
            reader = csv.DictReader(fin)
            writer = csv.DictWriter(fout, reader.fieldnames, delimiter=';')
            writer.writeheader()
            writer.writerows(reader)
    

1 个答案:

答案 0 :(得分:1)

没有答案,这是我在同一个文件中以分号实现的csv逗号的命题:

path="file_to_convert.csv"

reader = list(csv.reader(open(path, "rU"), delimiter=','))
writer = csv.writer(open(path, 'w'), delimiter=';')
writer.writerows(row for row in reader)

我使用了list(),因此保留了读者的内容,我重新打开要写入的文件。

如果您不需要将更改放在同一个文件中,可以查看answer