使用np.genfromtxt读取文件触发IOError:文件未找到,求解决指导
解决IOError: 文件找不到的问题
嘿,这个问题我熟!你遇到的IOError("%s not found." % path)本质是文件路径匹配错误,咱们一步步拆解解决:
错误原因
你用os.listdir(path)获取到的datafiles是folder文件夹里的文件名列表(比如file1.txt、file2.csv这类),但直接把这些文件名传给genfromtxt(df)时,程序会在当前工作目录(不是folder文件夹)里找这些文件,自然找不到,就抛出了找不到文件的错误。
解决方案
最稳妥的办法是拼接文件的完整路径,用os.path.join()把文件夹路径和文件名合并,让genfromtxt能准确定位到文件。
修改后的代码如下:
import os import numpy as np path = "folder" datafiles = os.listdir(path) for df in datafiles: print(df) # 拼接完整文件路径 full_file_path = os.path.join(path, df) data = np.genfromtxt(full_file_path, delimiter=' ') print(data)
另外还有个可选方案(不推荐,容易影响后续路径操作):先切换工作目录到folder,再处理文件:
import os import numpy as np path = "folder" os.chdir(path) # 切换到目标文件夹 datafiles = os.listdir() for df in datafiles: print(df) data = np.genfromtxt(df, delimiter=' ') print(data)
额外提醒
- 记得先导入
os和numpy模块(你的原代码里没写,可能是漏了) - 如果
folder里有非数据文件(比如文件夹、其他格式文件),可能还会触发新的错误,建议先过滤一下文件类型,比如只处理.txt或.csv文件:datafiles = [f for f in os.listdir(path) if f.endswith('.txt')]
内容的提问来源于stack exchange,提问作者programming
相关产品推荐
相关产品推荐

