关于python中globbing的快速问题。在
我有一个文件目录,目录是“sync_0001.tif”、“sync_0002.tif”。。。,“sync_2400.tif”。第一个800个文件,第二个是800个文件。唯一的问题是数字前的0。我想不出正确的方法去寻找那些名单。第三个列表很简单,因为没有0填充任何这些文件(s3=环球网('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移到前面,但是得到了一个空列表:
^{pr2}$实现这三个清单的最佳方法是什么?我开始觉得我搞错了,所以如果有人能给我点启示那就太好了。谢谢!在
最好的方法是:
sync
开头的所有文件既然你已经了解了globbing,剩下的就是:
由于模式始终是
^{pr2}$sync_
(在您编辑之后),您可以将上面的代码简化为以下内容:支持} module 对于您的任务来说还不够复杂。在
glob.glob()
函数的^{只需抓取所有文件名并在排序后对其进行分区:
这是因为你的数字是填充的,因此可以按字典顺序排序。然后把它们分开:
^{pr2}$无论如何,目录I/O将是这里最慢的。通过只循环一次并交换附加到的内容,可以使这一切变得更加高效:
但对于这样的任务,坚持简单的清单理解也很好。在
相关问题 更多 >
编程相关推荐