import os from pypdf import PdfMerger import re def find_pdf_files(directory): pdf_files = [] for root, _, files in os.walk(directory): for file in files: if file.endswith('.pdf'): file_path = os.path.join(root, file) pdf_files.append(file_path) print(f'added {str(file)} to the list') return pdf_files pdfs = find_pdf_files(os.getcwd()) pdfs = pdf_files_sorted = sorted(pdfs, key=lambda x: [int(s) if s.isdigit() else s.lower() for s in re.split(r'(\d+)', x)]) merger = PdfMerger() print('merging...') for pdf in pdfs: print(f'merged {pdf}.') merger.append(pdf) merger.write("merged.pdf") merger.close()