Я запускаю этот скрипт и получаю сообщение об ошибке: UnicodeEncodeError: код 'charmap' c не может кодировать символ '\ u25a0' в позиции 26492: символ отображается на неопределенный
Может ли это быть определено или лучше просто игнорировать? Я пытался игнорировать в разных частях программы и думаю, что я прочитал существующие вопросы, касающиеся кодирования. Не знаю, как это сделать. Я предполагаю, что будет более одного типа ошибки кодирования, т.е. разные символы, которые выдают ошибку, так как у меня много документов.
import io, os, glob
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
def convert(fname, pages=None):
if not pages:
pagenums = set()
else:
pagenums = set(pages)
output = io.StringIO()
manager = PDFResourceManager()
converter = TextConverter(manager, output, laparams=LAParams())
interpreter = PDFPageInterpreter(manager, converter)
infile = open(fname, 'rb')
for page in PDFPage.get_pages(infile, pagenums):
interpreter.process_page(page)
infile.close()
converter.close()
text = output.getvalue()
output.close
return text
print(text)
def convertMultiple(pdf_dir, txt_dir):
if pdf_dir == "": pdf_dir = os.getcwd()
for filepath in glob.iglob(f"{pdf_dir}/**/*.pdf", recursive=True):
text = convert(filepath)
root, _ = os.path.splitext(filepath) # Remove extension
txt_filepath = os.path.join(txt_dir, os.path.relpath(root, pdf_dir)) + ".txt"
txt_filepath = os.path.normpath(txt_filepath)
print(txt_filepath)
os.makedirs(os.path.dirname(txt_filepath), exist_ok=True)
with open(txt_filepath, "wt") as f:
f.write(text)
pdfDir = r"C:/Users/pdf/"
txtDir = r"C:/Users/txt/"
convertMultiple(pdfDir, txtDir)