【发布时间】:2019-12-02 23:42:06
【问题描述】:
我正在尝试编写一个 python 脚本,该脚本在具有相似文件名的目录中查找 pdf 并组合 pdf。我要分组的文件都以相同的 16 个字符开头,但文件名中的日期不同。
所有文件名都采用这种格式:
xxxxxxxxxxxxxxx_01-01-2019.pdf
xxxxxxxxxxxxxxx_02-01-2019.pdf
xxxxxxxxxxxxxxx_03-01_2019.pdfyyyyyyyyyyyyyyy_01-01-2019.pdf
yyyyyyyyyyyyyyy_02-01-2019.pdf
Python 脚本
import glob
filelist = glob.glob(_filepath_)
dictionary = {}
for x in filelist:
group = dictionary.get(x[125:141],[])
group.append(x)
dictionary[x[125:141]] = group
这有点有效。但是,它只为每个类似文件名返回一个文件:
['xxxxxxxxxxxxxxx_01-01-2019.pdf','yyyyyyyyyyyyyyy_01-01-2019.pdf']
如果我能解决文件的分组问题,合并 pdf 将不成问题。
【问题讨论】:
-
听起来像regular expressions 可能会有帮助。
-
欢迎来到 Stack Overflow!查看tour。您需要创建一个minimal reproducible example。我想写一个答案,但似乎通配符是问题所在,而您实际上并没有给出通配符。同样,切片
x[125:141]没有意义(应该是x[:16]),并且您的输出应该是字典,而不是列表。 FWIW 循环似乎工作正常。我用你的文件名作为字符串列表对其进行了测试。 -
是的,听起来你只需要一些基本的正则表达式。
-
@wjandrea 感谢您提供游览链接。下次一定要遵守stackoverflow的发帖规则。