我想在目录中的所有文件上运行我的代码。该代码可以在单个文件上正常工作,但是我尝试对多个文件进行迭代的过程告诉我
FileNotFoundError:[错误2]没有这样的文件或目录:'file.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.ExcelFile(filename)处停止,表示找不到该文件,即使该文件存在,甚至在我包含
时也可以打印打印(“当前文件为'+文件名)
该文件夹中的第一个文件失败,而未处理任何代码。
答案 0 :(得分:1)
是否可行取决于您在哪里运行脚本。如果您运行脚本的目录中没有filename
,那么您将得到一个FileNotFoundError
。
我会这样做:
x = pd.ExcelFile(os.path.sep.join([directory, filename]))
这将确保您将真实的文件位置传递给pd.ExcelFile
。