循环遍历目录下的 excel 个文件路径,并将它们传递给 Python 中的数据操作函数

Loop over excel files' paths under a directory and pass them to data manipulation function in Python

我需要通过 data_check.py 中的 DataCheck 函数检查目录 /Users/x/Documents/test/ 下的 excel 个文件,这样我就可以进行 数据操作个excel个文件,data_check.py的代码结构如下:

import pandas as pd

def DataCheck(filePath):
    df = pd.read_excel(filePath)
    try:
        df = df.dropna(subset=['building', 'floor', 'room'], how = 'all')
        ...
        ...
        ...
        df.to_excel(writer, 'Sheet1', index = False)
    
if __name__ == '__main__':
    status = True
    while status:
        rawPath = input(r"")
        filePath = rawPath.strip('\"')
        if filePath.strip() == "":
            status = False
        DataCheck(filePath)

为了在一个目录下循环所有 excel 个文件的路径,我使用:

import os

directory = '/Users/x/Documents/test/'
for filename in os.listdir(directory):
    if filename.endswith(".xlsx") or filename.endswith(".xls"):
        print(os.path.join(directory, filename))
    else:
        pass

输出:

/Users/x/Documents/test/test 3.xlsx
/Users/x/Documents/test/test 2.xlsx
/Users/x/Documents/test/test 4.xlsx
/Users/x/Documents/test/test.xlsx

但我不知道如何将上面的代码组合在一起,将 excel 文件的路径传递给 DataCheck(filePath)

感谢您的提前帮助。

使用名称调用函数而不是打印它们:

import os

directory = '/Users/x/Documents/test/'
for filename in os.listdir(directory):
    if filename.endswith(".xlsx") or filename.endswith(".xls"):
        fullname = os.path.join(directory, filename)
        DataCheck(fullname)