在Glob中使用部分通配符

2024-06-18 14:07:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我还没有找到这样的一个用例,但基本上,我试图利用glob作为文件名的一部分。在

file_name_date = time.strftime("%m%d%y")
h_server = time.strftime("%-I%p")    
filename = 'PRD.FRB.D01.INTRADAY.GGV1051.' + file_name_date + '.' + h_server + '.txt'

这在我的代码中工作得很好,但是现在GGV1051随着每个文件的变化而变化,所以我希望做一些类似的事情

^{pr2}$

但我不知道该怎么办。我没有看到fnmatch或{a2}的清晰路径,但我对这些库不是很熟悉。在

我的想法是创建一个这样的字符串:

filename = str('PRD.FRB.D01.INTRADAY.?.' + file_name_date + '.' + h_server + '.txt')

会产生:

PRD.FRB.D01.INTRADAY.?.062917.12P.txt

然后做一些类似的事情

glob(filename):

但这并没有达到预期的效果。在

有什么想法吗?谢谢!在


Tags: nametxtdateservertimefilename事情glob
2条回答

这样就可以了,星号符号*也应该是一个字符串。在

import glob
all_files = [] 
for file in glob.glob('PRD.FRB.D01.INTRADAY.*.' + file_name_date + '.' + h_server + '.txt''):
    all_files.append(file)

使用glob匹配/home/juser directory内所有文本文件的路径名,如/home/juser/something/*.txt。您可以使用它来匹配当前工作目录中所有文本文件的简单文件名,如*.txt。在

fnmatch.fnmatch和{}用于filenmae。前者测试文件名是否与模式匹配,对于匹配的名称返回True,否则返回{}表示不匹配的名称。后者根据给定的glob模式返回匹配的文件名。在

你所有的文件名都以珠江三角洲D01.1日内。并以.txt后缀结尾,然后匹配所有以珠江三角洲.D01.日内。不管中间是什么都以.txt结尾:

glob.glob("PRD.FRB.D01.INTRADAY.*.txt") 

这个glob匹配任何以珠江三角洲.D01.日内。以.txt后缀结尾,后面的内容无关紧要珠江三角洲.D01.日内。*通配符与任意字符匹配。?只匹配一个任意字符。注意,这与脚本工作目录中的文件名匹配。如果需要匹配不同目录中的名称,请将"/path/to/my/PRD.FRB.D01.INTRADAY.*.txt"传递给glob。在

相关问题 更多 >