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
相关产品推荐
相关产品推荐

