一個(gè)PDF文件中,有很多圖片,想批量提取出來,可以借助kimi智能助手。 在借助kimi智能助手中輸入提示詞: 你是一個(gè)Python編程專家,要完成一個(gè)網(wǎng)頁爬取Python腳本的任務(wù),具體步驟如下: 打開文件夾:E:\6451 讀取里面的PDF文件; 將PDF文件里面的圖片都保存到E:\6451 注意:圖片體積較大,占用內(nèi)存高,要將PDF文件中的圖片分批次提取,而不是一次性提取所有圖片 kim生成的Python源代碼: import fitz # PyMuPDF import os # 定義文件夾路徑 folder_path = 'E:\\6451' # 確保文件夾存在 if not os.path.exists(folder_path): print(f"The folder {folder_path} does not exist.") else: # 讀取文件夾中的所有PDF文件 for filename in os.listdir(folder_path): if filename.lower().endswith('.pdf'): pdf_path = os.path.join(folder_path, filename) doc = fitz.open(pdf_path) # 逐頁提取圖片 for page_number in range(len(doc)): page = doc[page_number] img_list = page.get_images(full=True) # 分批次提取頁面中的圖片 for img_index, img in enumerate(img_list, start=1): try: xref = img[0] info = doc.extract_image(xref) image_bytes = info["image"] # 為圖片構(gòu)造一個(gè)唯一的文件名 image_filename = f"{os.path.splitext(filename)[0]}_{page_number + 1}_img_{img_index}.png" image_save_path = os.path.join(folder_path, image_filename) # 保存圖片 with open(image_save_path, "wb") as image_file: image_file.write(image_bytes) print(f"Image saved: {image_save_path}") except Exception as e: print(f"Error saving image from page {page_number + 1}: {e}") # 釋放內(nèi)存 del page, img_list # 關(guān)閉PDF文檔 doc.close() print(f"Finished extracting images from {filename}") # 輸出信息到屏幕 print("All images have been extracted from PDF files.") # 確保屏幕輸出信息 input("按任意鍵退出...") 在vscode中運(yùn)行Python程序,成功提取所有圖片: |
|