我有一个目录,文件格式为:LnLnnnnLnnn.txt
其中L=字母,n=数字。E、 g:p2c0789c001.txt
我想根据第二个编号(即0789)是否在某个编号序列内(例如0001到0146)将这些文件分开。在
用fnmatch有没有一种简单的方法来实现这一点?还是应该使用regex?在
这是我目前掌握的代码:
out_files = []
for root, dirs, filenames in os.walk('.'):
for filename in fnmatch.filter(filenames, '???[0-9][0-9][0-9][0-9]????*.txt'):
out_files.append(os.path.join(root, filename))
在
fnmatch.filter()
内无法轻松完成,但您可以自己完成:或者,对于列表理解粉丝:
^{pr2}$编辑:天哪,忘了一个额外的for循环。另外,看看这是否有更好的性能。在
EDIT2:如果第一个字母是
c
,则检查第二个到最后一个元素,该元素基于两个备选方案的标准,保证存在。在或者,使用发电机:
^{pr2}$如果在字符串的开头或数字更改前的字符串长度处有其他
c's
:if 1 <= int(re.findall(r"c([0-9]+)c", s)[0]) <= 487
:或者如果总有四个数字:
相关问题 更多 >
编程相关推荐