你如何处理文件夹中的所有文件?
How do you process all files in a folder?
我想 运行 我的代码在目录中的所有文件上。该代码在单个文件上运行良好,但我尝试迭代多个文件时告诉我
FileNotFoundError: [Errno 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)
我希望它遍历目录中的所有文件,处理结果并将结果聚合到一个大数据帧 arrivals_aggregated。相反,它停在 x = pd.ExcelFile(filename),说找不到文件,即使它在那里,甚至在我包含
时打印
打印('current file is ' + 文件名)
文件夹中的第一个文件在没有处理代码的情况下就失败了。
这是否有效取决于您 运行 脚本的位置。如果 filename
不在您 运行 脚本所在的目录中,那么您将得到一个 FileNotFoundError
.
我会这样做:
x = pd.ExcelFile(os.path.sep.join([directory, filename]))
这将确保您将真实的文件位置传递给 pd.ExcelFile
。
我想 运行 我的代码在目录中的所有文件上。该代码在单个文件上运行良好,但我尝试迭代多个文件时告诉我
FileNotFoundError: [Errno 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)
我希望它遍历目录中的所有文件,处理结果并将结果聚合到一个大数据帧 arrivals_aggregated。相反,它停在 x = pd.ExcelFile(filename),说找不到文件,即使它在那里,甚至在我包含
时打印打印('current file is ' + 文件名)
文件夹中的第一个文件在没有处理代码的情况下就失败了。
这是否有效取决于您 运行 脚本的位置。如果 filename
不在您 运行 脚本所在的目录中,那么您将得到一个 FileNotFoundError
.
我会这样做:
x = pd.ExcelFile(os.path.sep.join([directory, filename]))
这将确保您将真实的文件位置传递给 pd.ExcelFile
。