如何循环浏览所有CSV文件,打开每个文件,并对每个文件执行一些操作?

2024-04-25 22:03:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试循环浏览文件夹中的所有CSV文件,打开每个文件,执行一些查找/替换操作,然后保存并关闭每个CSV。这是我的代码,应该很接近,我想,但显然有些东西是关闭的,因为它不工作。你知道吗

import glob
path = "C:\\Users\\ryans\\OneDrive\\Desktop\\downloads\\Products\\*.csv"
for fname in glob.glob(path):
    print(str(fname))
    with open(str(fname)) as f:
        newText = f.read().replace('|', ',').replace(' ', '')

with open(str(fname), "w") as f:
    f.write(newText)

这里怎么了?你知道吗


Tags: 文件csvpath代码import文件夹aswith
3条回答

您应该完成操作并关闭for循环中的文件。你知道吗

还请注意,将原始字符串用于路径比转义每个反斜杠更为优雅

import glob
path = r"C:\Users\ryans\OneDrive\Desktop\downloads\Products\*.csv"
for fname in glob.glob(path):
    print(str(fname))
    with open(str(fname), "w") as f:
        newText = f.read().replace('|', ',').replace(' ', '')
        f.write(newText)
import glob

path = "path/to/dir/*.csv"

for fname in glob.glob(path):
    print(fname)
    with open((fname), "w") as f:
        newText = f.read().replace('|', ',').replace(' ', '')
        f.write(newText)
        f.close()

使用Pandas Library读取csv文件并用所需的值替换该值。你知道吗

df['range'] = df['range'].str.replace(',','-')

range是列名。 并通过以下方式保存它

df.to_csv(file_name, sep=',')

或者不用图书馆

with open(resource,'rb') as f, open("output.txt", "a+") as outputfile:
for line in f:
    line = line.replace(' ', '-')
    outputfile.write(line)

相关问题 更多 >