Python: existing file not found (IOError: [Errno 2]) when using os.walk
Python: existing file not found (IOError: [Errno 2]) when using os.walk
我设置了以下目录:
+---main
| |
| +---sub1
| | file1.xlsx
| |
| +---sub2
| | file2.xlsx
| |
| \---sub3
| file3.xlsx
我想访问每个文件并计算其 A1:A10
个单元格的平均值,但是当 file1.xlsx
存在时,我收到此错误:
IOError: [Errno 2] No such file or directory: 'file1.xlsx'
我现在的代码(它被设计为迭代许多 "main" 目录):
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)
。为什么我会得到它以及如何解决它?
请检查documentation for os.walk
。它指出:
To get a full path (which begins with top) to a file or directory in dirpath, do 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)
# ...
我设置了以下目录:
+---main
| |
| +---sub1
| | file1.xlsx
| |
| +---sub2
| | file2.xlsx
| |
| \---sub3
| file3.xlsx
我想访问每个文件并计算其 A1:A10
个单元格的平均值,但是当 file1.xlsx
存在时,我收到此错误:
IOError: [Errno 2] No such file or directory: 'file1.xlsx'
我现在的代码(它被设计为迭代许多 "main" 目录):
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)
。为什么我会得到它以及如何解决它?
请检查documentation for os.walk
。它指出:
To get a full path (which begins with top) to a file or directory in dirpath, do 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)
# ...