При преобразовании большого количества старых документов MS Office регулярно возникают всплывающие окна с запросом паролей документов, разрешения на сохранение файла без макросов или намека на то, что файлы содержат комментарии или исправления. Поскольку они останавливают процесс преобразования, я хотел бы автоматизировать ответы на них.
Я пытался отлавливать ошибки с помощью исключений, но эти всплывающие окна не вызывают исключений. Я пробовал переключиться на pyexcel для файлов Excel, что сработало для файлов, защищенных паролем (то есть создание исключения, чтобы я мог пропустить файл и войти в журнал), но большинство всплывающих окон все равно приходят из Word, и их нет. кажется, слово, эквивалентное pyexcel. Я также читал об unoconv, но мне бы хотелось избегать использования LibreOffice.
Вот мой код (только немного для файлов Word, чтобы он был короче):
import os
import win32com.client as win32
folder = "FOLDER_PATH"
word = win32.Dispatch("Word.application")
for subdir, dirs, files in os.walk(folder):
for file in files:
filename = os.fsdecode(file)
path = os.path.join(subdir, filename)
if filename.endswith(".doc") or filename.endswith(".DOC"):
try:
wordDoc = word.Documents.Open(path, False, False, False)
wordDoc.SaveAs(path + 'x', FileFormat=16) # FileFormat = 16 is .docx
wordDoc.Close()
with open('CONVERTED_FILES.txt','a') as f:
f.write(path + "\n")
except Exception as ex:
with open('CONVERSION_ERRORS.txt','a') as f:
if hasattr(ex, 'message'):
f.write(path + " Error: " + ex.message + "\n")
else:
f.write(path + " Error: " + str(ex) + "\n")
word.Application.Quit()
Подробнее здесь: https://stackoverflow.com/questions/792 ... sing-win32
Как бороться со всплывающими окнами во время преобразования doc в docx/xls в xlsx с помощью Win32 ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение