Я получаю сообщение об ошибке, когда пытаюсь получить доступ к файлам из моего рабочего каталога. Это не дубликат вопроса @dsphoebe, потому что файл, который я пытаюсь открыть, определенно является файлом .docx, и по какой-то причине я не могу его открыть.
rootdir = 'C:\\Users\\me\\Documents\\Python\\mydocs\\'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
print(file) #prints all word docs in my folder, just like I want
Теперь, когда я заменяю этот оператор печати оператором, который создает объект docx,
rootdir = 'C:\\Users\\me\\Documents\\Python\\mydocs\\'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
doc = docx.Document(os.path.join(rootdir, file))
...
#continuing with what I wanted to do w/ the documents...
Error: "Package not found at '%s'" % pkg_file
docx.opc.exceptions.PackageNotFoundError: Package not found at 'my doc.docx'
Теперь в этой папке mydocs мой doc.docx - это правильный заголовок, и это, безусловно, файл .docx. Название этого определенного файла состоит из 2 слов с одним пробелом (например, мой doc.docx). Но преобразование в объект типа «Документ» работает для другого документа Word в той же папке, который содержит только ОДНО слово!
Это работает:
rootdir = 'C:\\Users\\me\\Documents\\Python\\mydocs\\'
doc = docx.Document(os.path.join(rootdir, "Access.docx"))
Exited with code = 0
Но это не так:
rootdir = 'C:\\Users\\me\\Documents\\Python\\mydocs\\'
doc = docx.Document(os.path.join(rootdir, "Able2Extract Professional.docx"))
Exited with code=1
Итак, two words.docx
не будет работать, а oneword.docx
будет. Очень запутанно. Кто-нибудь знает, как диагностировать эту проблему?