如何增加此代码列表以在更广泛的范围内工作 对于 200 个文件来说效果很好
File "F:\New folder\Tarek\New folder\Merger2.py", line 14, in merge_pdf
matching_draft = [f for f in second_list if key in f][0]
IndexError: list index out of range
代码
import os
from PyPDF2 import PdfMerger #pip install PyPDF2
def merge_pdf(first_folder , second_folder ,output_folder):
# if not os.path.exists(output_folder):
# os.mkdir(output_folder)
first_folder = [f for f in os.listdir(first_folder) if f.endswith('.pdf')]
second_folder = [f for f in os.listdir(second_folder) if f.endswith('.pdf')]
for pdf in first_folder :
key = pdf.split('.')[0]
print(key)
matching_draft = [f for f in second_folder if key in f][0]
merger = PdfMerger()
merger.append(f"{first_folder}/{pdf}")
merger.append(f"{second_folder}/{matching_draft}")
merger.write(f"{output_folder}/merged_file.pdf")
#merger.write(f'{output_Folder}/{matching_draft}')
#print (f'Merged {len(first_folder)} PDFS to {output_folder}')
merge_pdf('first_folder','second_folder','output_folder')
获取与原始文件名相同的输出
在列表理解之后(第 14 行),如果列表为空,代码将尝试访问不存在的索引。
尝试检查
matching_draft
的长度或实施 try/ except:
matching_draft = [f for f in second_folder if key in f]
try:
matching_draft = matching_draft[0]
except IndexError:
# empty list