【问题标题】:Python: existing file not found (IOError: [Errno 2]) when using os.walkPython:使用 os.walk 时未找到现有文件(IOError:[Errno 2])
【发布时间】:2016-01-11 15:25:12
【问题描述】:

我已经建立了以下目录:

+---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)。为什么我会得到它以及如何解决它?

【问题讨论】:

    标签: python directory filenames subdirectory


    【解决方案1】:

    请查看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)
                # ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多