使用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中更改分隔符的主要内容,如果未能解决你的问题,请参考以下文章

csv修改分隔符w需要重启电脑

在 python dask 中使用分隔符读取 csv

在 Python Pandas 中使用多个字符分隔符 read_csv

如何修改CSV文件的分隔符

使用 Python 生成的 CSV 文件时,Excel 忽略小数分隔符

php WPForms:更改导出CSV文件分隔符。