【发布时间】:2017-07-30 20:43:20
【问题描述】:
在一个目录中,有两个文件大部分名称相同:
my_file_0_1.txt
my_file_word_0_1.txt
我想打开my_file_0_1.txt
我需要避免指定确切的文件名,而是需要在目录中搜索与部分字符串 my_file_0 匹配的文件名。
来自this answer here,and this one,我尝试了以下:
import numpy as np
import os, fnmatch, glob
def find(pattern, path):
result = []
for root, dirs, files in os.walk(path):
for name in files:
if fnmatch.fnmatch(name, pattern):
result.append(os.path.join(root, name))
return result
if __name__=='__main__':
#filename=find('my_file_0*.txt', '/path/to/file')
#print filename
print glob.glob('my_file_0' + '*' + '.txt')
这些都不会打印实际的文件名,供我稍后使用np.loadtxt 阅读。
如何根据字符串匹配的结果查找和存储文件名?
【问题讨论】:
-
glob.glob是要走的路,我想。glob.glob('my_file_0*.txt')返回文件名列表,使用索引检索你需要的文件。 -
同意。
glob.glob是fnmatch的包装器,但它是一个包装器,它完全可以在此处完成您想做的事情。 -
@StatsSorceress 确保您在运行脚本的目录中有此文件,因为
glob应该可以工作
标签: python