在代碼中,我將多個 1 頁 PDF 轉換為 PNG 格式。轉換本身對 cv2 效果很好,但遺憾的是,許多檔案 (PDF) 名稱包含德語變音符號 (?,?,ü),而 PNG 最終具有特殊字符。
示例:將 PDF (l?sung_122.png) 轉換為 PNG 后,它看起來像這樣“l??sung_122.png”。它應該是 loesung_122.png。
我想將檔案標題中的所有這些字符 (?,?,ü) 替換為 ae、oe、ue。
我該如何調整我的代碼來存檔?我有哪些選擇?也許有一種方法可以在轉換之前重命名檔案(PDF)?
from pdf2image import convert_from_path
import os
import cv2
if __name__ == '__main__':
# Init
dir_name = os.getcwd()
path_pdf = dir_name '/data/doc/October' #Folder containing all documents (PDF)
save_path = dir_name '/data/blanko/' #Folder with all converted doc (PNG)
# Loop sub Folders:
files = os.listdir(path_pdf)
for pdf_file in files:
# Check if PDF file
if pdf_file[-3:] == 'pdf':
images = convert_from_path(path_pdf '/' pdf_file, dpi=300, poppler_path='C:/Develop/poppler-0.68.0_x86/poppler-0.68.0/bin')
# Save Images
images[0].save(save_path 'tmp.png', 'PNG')
img = cv2.imread(save_path 'tmp.png')
cv2.imwrite(save_path pdf_file[:-4] '.png', img)
任何幫助表示贊賞
問候
uj5u.com熱心網友回復:
我是一個錯誤,cv2.imwrite()因為它正在破壞你給它的名字。你可以試試這個來解開這個名字:
result = os.path.join(save_path, os.path.splitext(pdf_file)[0] '.png')
cv2.imwrite(result, img)
os.rename(result.encode().decode('mbcs'),result)
這會將重命名的檔案形式重命名為原始形式。請注意,這不會洗掉變音符號,因為 Windows 可以處理名稱中的這些字符。
但請注意,它只能恢復以您的本地編碼(可能是 Windows-1252)表示的字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/338183.html
標籤:Python opencv utf-8 特殊的角色 unicode 规范化
