将多个.csv文件从分号转换为列格式

时间:2018-10-08 17:03:39

标签: python csv

我正在尝试编写一个代码,该代码将目录中的所有.csv文件以半冒号分隔,然后将.csv文件格式化为列。这是我的代码:

import pandas as pd
import glob
path = r'C:...'
csv_file = path + "\*.csv"
allFiles = glob.glob(path + "\*.csv")

for file in allFiles:
 dataframe = pd.read_csv(file, delimiter=';')
 dataframe.to_csv(file, encoding='utf-8', index=False)

我已经测试了此代码的dataframe =部分,它可以按需对一个.csv文件工作,但是我无法对文件夹中的所有文件重复此操作。有任何想法吗?谢谢。

2 个答案:

答案 0 :(得分:2)

如果您要做的只是将文件中的;更改为,,则可以执行以下操作:

for root, dirs, files in os.walk("/dirname/"):
    csv_files = [ff for ff in files if ff.endswith('.csv')]
    for f in csv_files:
        with open(f) as tf:
            s = f.read()
        with open(f, "w") as tf:
            f.write(s.replace(";", ","))

答案 1 :(得分:0)

您可以使用pandas并执行以下操作:

import pandas as pd

df1 = pd.read_csv("csv_semicolon.csv", delimiter=";")
df1.to_csv("csv_tab.csv", sep="\t", index=False)