如何解决迭代非连续文件以及如何避免退出程序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():
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。