Я получаю сообщение об ошибке при попытке доступа к файлам из моего рабочего каталога. Это не дубликат вопроса @dsphoebe, потому что файл, который я пытаюсь открыть, является, конечно, файлом .docx и по какой-то причине я не могу его открыть.Пакет не найдена ошибка на окнах в python-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 слова с одним пробелом (то есть my doc.docx). Но преобразование в объект типа «Документ» работает для другого слова doc в той же папке, что только ONE слово!
Это работает:
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
бы. Очень смущает. Кто-нибудь знает, как диагностировать эту проблему?
ли файл «мои doc.docx» открыт, если поместить дефис, где пространство Это полезный тест, потому что исключает проблемы с .docx файл? и сузить его до проблемы с открытием файла ОС. – scanny
Нет, my-doc.docx не откроет его :(так это значит, что проблема с открытием файла ОС? – Vince
** Некоторые из документов в моем списке были с ПЕРЕД 2007 г. python-docx НЕ МОЖЕТ БЫТЬ ... Это была моя проблема здесь. ** У этих просто было 2 слова в их названиях тоже:/ – Vince