Python Path Library使用正则表达式搜索文件

时间:2015-05-26 16:32:44

标签: python regex python-2.7 path

我正在尝试删除重复的文件(而不是最后扩展名为“(number)”的文件。 我为此目的使用正则表达式"^[a-zA-z0-9_]+\([0-9]*\)\.pdf$"。正则表达式没有问题。

以下是我的代码

import re;
from path import path;
pattern1 = re.compile("^[a-zA-z0-9_]+\([0-9]*\)\.pdf$");
p = path("/home/jill/Downloads/Dinamalar (copy)")   
#Deletes the duplicates in the folder    
for f in p.files(pattern = pattern1):
    print f

但我得到了

  

TypeError:“类型为'_sre.SRE_Pattern'的对象没有len()”

在for循环中

。似乎缺少什么?

有没有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

不要编译正则表达式。相反,只需将字符串直接传递给p.files

for f in p.files(pattern="^[a-zA-z0-9_]+\([0-9]*\)\.pdf$"):
    print f

(此答案基于@Shashank的评论)