我正在尝试编写一个代码,该代码将目录中的所有.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文件工作,但是我无法对文件夹中的所有文件重复此操作。有任何想法吗?谢谢。
答案 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)