遍历非连续文件以及如何避免退出程序python



我正在学习python,我想迭代很多枚举中没有连续的文件。例如,我需要合并的文件的名称:

dp_1.pdf  I need it to merge with support_dp_1.pdf
dp_3.pdf - - - - - - - - - - - -  support_dp_3.pdf
ip_1.pdf - - - - - - - - - - - -  support_ip_1.pdf
ip_2.pdf - - - - - - - - - - - -  support_ip_2.pdf
ip_3.pdf - - - - - - - - - - - -  support_ip_3.pdf
ep_4.pdf - - - - - - - - - - - -  support_ep_4.pdf

我的脚本是这样的:

from PyPDF2 import PdfFileMerger
files = ['dp_', 'ep_', 'ip_']
number = 1
while number <= 4:
for f in files:
pdfs = [f + str(number) + ".pdf", "support_" + f + str(number) + ".pdf"]
name_file_output = "output_" + f + str(number) + ".pdf"
fusion = PdfFileMerger()
for pdf in pdfs:
fusion.append(open(pdf, 'rb'))
with open(name_file_output, 'wb') as output:
fusion.write(output)
number += 1

我有一个错误:

FileNotFoundError: [Errno 2] No such file or directory: 'dp_2.pdf'

程序退出。如何在不退出的情况下迭代并继续循环中的下一个文件?

在尝试合并文件之前,可以使用os.path.exists函数检查文件是否存在:

from PyPDF2 import PdfFileMerger
import os
files = ['dp_', 'ep_', 'ip_']
number = 1
while number <= 4:
for f in files:
pdfs = [f + str(number) + ".pdf", "support_" + f + str(number) + ".pdf"]
name_file_output = "output_" + f + str(number) + ".pdf"
fusion = PdfFileMerger()

if not any(os.path.exists(pdf) for pdf in pdfs):
continue

for pdf in pdfs:
fusion.append(open(pdf, 'rb'))
with open(name_file_output, 'wb') as output:
fusion.write(output)
number += 1

尝试将其添加到脚本中

import pathlib
file = pathlib.Path("<filename>")
if file.exists():

最新更新