【发布时间】:2021-03-09 06:12:47
【问题描述】:
我有一个 Python 脚本,列出了给定路径中的文件夹和文件,我想找到一个以数字和当前日期开头的 pdf 文件。为此,我使用了正则表达式,但问题是系统与请求的文件不匹配。
regular expression = [0-9]+_[0-3]?[0-9]-[0-3]?[0-9]-(?:[0-9]{2})?[0-9]{2}$
文件名示例:10204_09-03-2021.pdf
我的代码中的错误在哪里?
代码:
for file in files:
if file.endwith("pdf"):
if file == re.findall("^[0-9]+_[0-3]?[0-9]-[0-3]?[0-9]-(?:[0-9]{2})?[0-9]{2}$",file)
shutil.copy(filename,destination)
【问题讨论】:
-
$ 表示匹配必须在行尾结束。
.pdf呢?以\.pdf$结尾。 -
将 .pdf 添加到正则表达式的末尾
-
我试过你的评论,但还是没找到
-
可能是因为你在做
file == re.findall(...)。 File 是一个字符串,在这种情况下 re.findall() 将返回一个列表。 -
什么是
filename?这里不应该是file吗?