我已设置以下目录:
+---main
| |
| +---sub1
| | file1.xlsx
| |
| +---sub2
| | file2.xlsx
| |
| \---sub3
| file3.xlsx
我想访问每个文件并计算其A1:A10
单元格的平均值,但是当file1.xlsx
存在时,我收到此错误:
IOError: [Errno 2] No such file or directory: 'file1.xlsx'
我的代码截至目前(它旨在迭代许多“主”目录):
import os
from openpyxl import load_workbook
directoryPath=r'C:\Users\MyName\Desktop\MainFolder'
os.chdir(directoryPath)
folder_list=os.listdir(directoryPath)
for folders, sub_folders, file in os.walk(directoryPath):
for name in file:
if name.endswith(".xlsx"):
filename=os.path.basename(name)
wb=load_workbook(filename)
cell_range = wb['A1':'A10']
#computing the mean value
错误指向wb=load_workbook(filename)
。为什么我会得到它以及如何解决它?
答案 0 :(得分:4)
请检查documentation for os.walk
。它声明:
要获取dirpath中文件或目录的完整路径(以top开头),请执行os.path.join(dirpath,name)。
这意味着正确的代码应如下所示:
for folder, sub_folders, files in os.walk(directoryPath):
for name in files:
if name.endswith(".xlsx"):
filename = os.path.join(folder, name)
wb = load_workbook(filename)
# ...