【发布时间】:2014-04-07 18:29:27
【问题描述】:
关于在 python 中通配的快速问题。
我有一个文件目录,其中包含“sync_0001.tif”、“sync_0002.tif”、...、“sync_2400.tif”。我想获得这些文件的 3 个子集列表:1 个用于前 800 个文件,第二个 800 个文件,最后 800 个文件。唯一的问题是数字前的 0。我无法找出获取这些列表的正确方法。第三个列表很简单,因为没有 0 填充任何这些文件 (s3=glob.glob('sync_[1601-2400].tif')。另外两个比较棘手,因为前面 0 的数量各不相同。
我试过这个,但得到“错误的字符范围”,我猜是因为 0:
s1 = glob.glob('sync_' + '{[0001-0009], [0010-0099], [0100-0800]}' + '.tif')
s2 = glob.glob('sync_' + '{[0801-0999], [1000-1600]}' + '.tif')
然后我尝试像这样将 0 移到前面,但得到一个空列表:
s1 = glob.glob('sync_' + '{000[1-9], 00[10-99], 0[100-800]}' + '.tif')
实现这三个列表的最佳方法是什么?我开始认为我把整个 glob 的事情搞错了,所以如果有人能解释一下,那就太好了。谢谢!
【问题讨论】:
-
glob使用的fnmatch()syntax 还不够复杂..