【问题标题】:Merge PDF if name contains X Python如果名称包含 X Python,则合并 PDF
【发布时间】:2022-01-10 10:40:00
【问题描述】:

我有两个文件夹,文件夹 1 包含:

000000.pdf

123456.pdf

987654.pdf

文件夹 2 包含:

000000 - Name1.pdf

123456 - Name2.pdf

111111 - Name8.pdf

如果文件名中的数字相同,我想编写一个 Python 脚本来合并 pdf,如果不匹配则跳过该文件。合并后,它应该使用文件夹 2 中的名称保存。这样做的简单方法是什么?文件的数量可能会改变并且每次都不相等,所以我在想类似

If contains number x:
     merge
Else:
     skip

但我还没有让它工作。

【问题讨论】:

  • 你用的是什么系统?
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python pdf merge contains


【解决方案1】:

要合并文件,请使用PyPDF2。要获取文件夹内容,您有不同的选择,但建议使用glob。所以解决方案看起来像这样:

from glob import glob
from pathlib import Path

f1_files = glob(".../*")
f2_files = glob(".../*")

for f1 in f1_files:
    number = Path(f1).stem # Path module is amazing!
    for f2 in f2_files: 
        if number in f2: # we found number in folder_2!
            merger = PdfFileMerger()
            merger.append(f1)
            merger.append(f2)
            merger.write(f2) # f2 here is the name of result file
            break

【讨论】:

  • 谢谢!我理解你的逻辑,但是 split 函数最后只去掉了“.pdf”,所以它为每个文件夹提供了不同的工作目录。因此,它找不到任何文件。我尝试使用 f1.split(”/“)[-1],但这仅适用于第一个文件。您知道从工作目录中获取文件编号的其他方法吗?
  • 我错了,我更新了答案
猜你喜欢
  • 2014-04-24
  • 1970-01-01
  • 2020-01-24
  • 1970-01-01
  • 2013-06-21
  • 2020-08-19
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
相关资源
最近更新 更多