如何为文件夹中包含的每个 Excel 文件 运行 我的 Python 代码?

How to run my Python code for every Excel file contained in a folder?

我有一个以特定首字母缩写命名的文件夹,在该文件夹中您可以找到一定数量的 Excel 个文件。 该文件夹的名称表示公寓的名称(例如 UDC06_45),并且在此文件夹内,所有 Excel 文件的名称由以下部分组成: 公寓的名称,后跟位于该公寓的设备名称(例如 UDC06_45_Oven)。

这些 Excel 文件是非常简单的 DataFrame,它们包含能耗测量值:一列名为“时间戳”,一列名为“能量”(所有这些测量值的频率均为 15 分钟)。文件夹内的所有 Excel 个文件都是用相同的相同结构制作的。

我的 Python 代码一次只接受 这些 Excel 文件中的一个 作为输入,并且对它们进行很少的操作(重采样、时间插值、等)从命令“pd.read_excel()”开始,并在给它命名后用“df.to_excel()”创建一个输出Excel文件。

我想要做的是将我的代码自动应用到该文件夹​​中的所有文件。 该代码应仅将文件夹名称 ("UDC06_45") 作为输入,并根据需要创建尽可能多的输出文件。 因此,如果该文件夹仅包含两个设备:

代码将一个接一个地详细说明它们,我应该获得两个 dinstinct Excel 文件作为输出。他们的名字只是由输入文件名后跟“_output”组成:

通常,必须对该文件夹中包含的每个 Excel 文件执行此操作。如果该文件夹包含 5 个设备,即 5 个输入 Excel 文件,我应该获得 5 个输出 Excel 文件...等等。

我该怎么做?

在下面的代码中只指定你的路径,在我的例子中我使用了一个测试文件夹路径path=r'D:\test'这段代码将在同一路径中自动创建一个新文件夹。

import pandas as pd
import os
from glob import glob

path=r'D:\test'  # add whatever your path is in place of 'D:\test'
input_folder='UDC06_45' # name of input folder
output_folder=input_folder+'_out' 

new_path=path+'/'+output_folder 


if not os.path.exists(new_path):
    os.makedirs(new_path)
    
files=glob(path+'/'+input_folder+'/'+'*.xlsx')

for file in files:
    name=file.split(path+'/'+input_folder+'\')[-1].rsplit('.')[0]
    df=pd.read_excel(file)
    #do all your operations here
    df.to_excel(new_path+'/'+name+'_output.xlsx')