我使用Python,并有一个不同文件类型的文件名列表。文本文件可能如下所示:如何将Python格式字符串与列表中的元素进行匹配?
01.txt
02.txt
03.txt
...
让我们假设文本文件都以这种方式编号。现在我想要得到所有文本文件的编号范围从1到25.所以我想通过GUI提供一个像%02i.txt
这样的格式字符串来标识所有匹配的文件名。
我到目前为止的解决方案是嵌套for
循环。在整个名单外循环迭代和内循环计数从1到25每个文件:
fmt = '%02i.txt'
for f in files:
for i in range(1, 25+1):
if f == fmt % i:
# do stuff
此嵌套循环看起来并不很漂亮,复杂性是O(N²)。所以在很长的名单上可能需要一段时间。 有没有更聪明的/ pythonic的方式来做到这一点?
嗯,是的,我可以使用像^\d{2}\.txt$
这样的正则表达式,但使用%
的格式字符串更容易输入。
恭喜10K! – unutbu 2013-03-17 02:13:39
很好的解决方案。我用这个。 :-) – 2013-03-30 00:12:46