迭代非连续文件以及如何避免退出程序python
Iterate over non consecutive files and how avoid exit the program 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():
我正在学习 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():