Python遍历指定文件夹内.txt文件报错:提示文件未找到
解决遍历txt文件时的“文件未找到”问题
问题根源
- 缺少文件夹路径:你构造的
file变量只有文件名,没带上kepler_data_c03的路径,Python会默认在脚本当前目录找文件,而非目标文件夹内。 - 编号与实际文件不匹配:
len(os.listdir("kepler_data_c03"))只能拿到文件总数,但没法保证文件是从file_1.txt开始连续编号的,可能存在编号断层、起始号不对的情况。 - range范围错误:
range(1, len(...))的结束值是文件总数,会漏掉最后一个编号的文件(比如总数6000的话,range到6000实际只循环到5999)。
正确处理方式
方式一:直接遍历文件夹内所有txt文件(推荐)
不用依赖文件编号,直接遍历目标文件夹里的.txt文件,彻底避开编号不匹配的坑:
import os folder_path = "kepler_data_c03" for filename in os.listdir(folder_path): if filename.endswith(".txt"): # 拼接完整路径,适配不同系统的路径分隔符 full_path = os.path.join(folder_path, filename) # 这里写你的文件处理逻辑,比如打开文件 with open(full_path, 'r') as f: content = f.read() # ...后续操作
方式二:必须按编号遍历(确认文件连续编号时用)
如果确定文件是file_1.txt到file_6000.txt连续编号,补全路径并修正range范围:
import os folder_path = "kepler_data_c03" # 直接指定编号范围,覆盖所有6000个文件 for i in range(1, 6001): filename = f"file_{i}.txt" full_path = os.path.join(folder_path, filename) # 先检查文件是否存在,避免报错 if os.path.exists(full_path): with open(full_path, 'r') as f: # 处理文件内容 pass else: print(f"文件 {full_path} 不存在")
额外提示
- 用
os.path.join()拼接路径,能自动适配Windows和Linux的路径分隔符,避免手动写斜杠出错。 - 调试时可以先打印几个
full_path,确认路径是否指向kepler_data_c03文件夹里的正确文件。
内容的提问来源于stack exchange,提问作者alex.b
相关产品推荐
相关产品推荐

