如何使用Numpy的genfromtxt通过部分目录路径读取文件?
使用genfromtxt读取带通配符路径的文件
numpy的genfromtxt本身不支持直接解析shell风格的通配符(比如*),得先借助Python的文件匹配工具找到实际的文件路径,再传给genfromtxt,下面是两种常用方法:
方法一:用glob模块(最直接)
glob模块专门处理通配符路径匹配,逻辑和Linux shell完全一致。
示例代码:
import numpy as np import glob # 匹配所有符合模式的文件路径 file_paths = glob.glob("a/b/foldername*/filename") # 按你描述的,数字和foldername唯一关联,所以只会有一个匹配结果 file = np.genfromtxt(file_paths[0])
方法二:用pathlib模块(现代路径处理方式)
如果习惯用Python 3.4+的pathlib处理路径,可以这么写:
import numpy as np from pathlib import Path # 生成路径对象并匹配,next()直接取唯一的匹配结果 file_path = next(Path("a/b").glob("foldername*/filename")) file = np.genfromtxt(str(file_path))
注意事项
- 如果存在多个匹配的文件路径,上面的代码只会取第一个,你可以根据需求循环处理所有匹配项。
- 确保通配符模式
foldername*只会匹配到目标目录,避免意外匹配无关路径。
内容的提问来源于stack exchange,提问作者Daphne
相关产品推荐
相关产品推荐

