You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python遍历文件夹名称报错:无法找到指定路径文件

问题分析与解决

错误原因

你的代码里,路径字符串中的i是固定的字符串字面量,并非循环变量i。程序会尝试访问路径C:\Users\USER\OneDrive - Technion\Research_Technion\Python_PNM\Sept12_2022\i\Test.xlsx,但不存在名为i的文件夹,因此触发FileNotFoundError。

另外,内层循环也使用了变量i,这会覆盖外层循环的i值,可能导致后续迭代逻辑异常。

修正方案

1. 动态插入循环变量到路径中

使用f-string(Python 3.6及以上版本支持)将循环变量i嵌入路径,这是最简洁直观的实现方式。也可以选择字符串拼接或str.format()方法。

2. 避免变量名冲突

内层循环变量不要和外层的i重复,改为j或其他名称,防止变量值被意外覆盖。

修正后的完整代码

import pandas as pd
import numpy as np

for i in range(1,3):
    # 用f-string将变量i动态嵌入路径
    file_loc = f"C:\\Users\\USER\\OneDrive - Technion\\Research_Technion\\Python_PNM\\Sept12_2022\\{i}\\Test.xlsx"
    df = pd.read_excel(file_loc, index_col=None, na_values=['NA'], usecols="A,C:AA")
    A = df["N"].to_numpy()
    print([A])
    A = [x for x in A if str(x) != 'nan']
    print(A)
    A = [eval(e) for e in A]
    print(A)

    A = np.array(A)
    print([A])

    # 内层循环改用变量j,避免覆盖外层循环的i
    A_mean = []
    for j in range(len(A)):
        A_mean.append(np.mean(A[j]))
    print(*A_mean, sep='\n')

其他可选路径写法

如果不偏好f-string,也可以用以下方式构建路径:

  • 字符串拼接:file_loc = "C:\\Users\\USER\\OneDrive - Technion\\Research_Technion\\Python_PNM\\Sept12_2022\\" + str(i) + "\\Test.xlsx"
  • str.format()方法:file_loc = "C:\\Users\\USER\\OneDrive - Technion\\Research_Technion\\Python_PNM\\Sept12_2022\\{0}\\Test.xlsx".format(i)

内容的提问来源于stack exchange,提问作者user19862793

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 17:15:36