如何处理文件夹中的所有文件?

2024-05-15 09:22:48 发布

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

我想在目录中的所有文件上运行我的代码。代码在单个文件上运行良好,但是我尝试在多个文件上迭代时会告诉我

FileNotFoundError:[Errno 2]没有这样的文件或目录:'文件.xlsx'

directory = r"C:/Users/name/Desktop/folder/2018"
arrivals_aggregated = pd.DataFrame()

print(os.listdir(directory))
for filename in os.listdir(smt_directory):

    print('current file is ' + filename)
    x = pd.ExcelFile(filename)
    symbols = x_symbols(x)
    arv = x.parse(sheet_name='Arrivals', skiprows=5, usecols=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])
    arrivals = x_arrivals(arv, x)

arrivals_aggregated.append(arrivals)

我希望它遍历目录中的所有文件,处理结果并将其聚合为一个大数据帧。相反,它在x=pd.excel文件(文件名),表示找不到该文件,即使它在那里,甚至在包含时打印

print('当前文件为'+文件名)

它在文件夹中的第一个文件上失败,而从未处理过代码。你知道吗


Tags: 文件代码name目录os文件名filenamedirectory
1条回答
网友
1楼 · 发布于 2024-05-15 09:22:48

这是否有效取决于脚本的运行位置。如果运行脚本的目录中不存在filename,则会得到FileNotFoundError。你知道吗

相反,我会:

x = pd.ExcelFile(os.path.sep.join([directory, filename]))

这将确保您将真实的文件位置传递给pd.ExcelFile。你知道吗

相关问题 更多 >