我正在编写一个代码,在一个文件夹中的多个文件上运行脚本。我可以在每个文件上运行代码,但它只是保存到一个输出文件,然后重写该文件。如何让这段代码将输出保存到单独的文件中?最好使用与每个原始文件相似的名称。这就是我目前所拥有的。在
import os, re
import pandas as pd
directory = os.listdir('C:/Users/user/Desktop/NOV')
os.chdir('C:/Users/user/Desktop/NOV')
for file in directory:
df = pd.read_csv(file, index_col="DateTime", parse_dates=True)
df = df.resample('1min').mean()
df = df.reindex(pd.date_range(df.index.min(), df.index.max(), freq="1min"))
df.to_csv("newfile.csv", na_rep='NaN')
只需在循环的每个迭代的最后一行更改文件名。 类似于
for i, file in enumerate(directory):
然后df.to_csv("new_" + file + ".csv", na_rep='NaN')
的方法就可以了。在我的方法:
glob.glob
而不是os.listdir
过滤出不是csv
文件的文件os.chdir
,这是一个错误的做法,因为其他模块可能不知道您更改了当前目录,也可能会因为相对更改了两次dir而失败,使用glob.glob
可以避免这种情况。在"new_"
的文件(不过,运行两次将创建"new_new_
文件)代码:
显然,它总是写入同一个文件,因为你总是在
to_csv
中给出相同的文件名。使用os.path.basename
在不带扩展名的旧文件名的基础上创建新文件名:相关问题 更多 >
编程相关推荐