2017-04-26 13 views
1

.xml 형식의 많은 양의 Word 문서가있는 일련의 폴더가 제공되었습니다. 각각 VBA 코드가 포함되어 있지만 모두 코드가 이미 실행되었으므로이 코드를 보관할 필요가 없습니다.XML Word 문서를 DOCX로 변환하는 방법?

각 폴더의 모든 파일을 인쇄해야하지만 네트워크의 XML 파일 제약으로 인해 Windows 탐색기에서 대량 인쇄 할 수 없으므로 .docx로 변환해야합니다. 또는 .doc).

어떻게해야합니까?

import os 
from docx import Document 
folderPath=<folderpath> 
fileNamesList=os.listdir(folderPath) 
for xmlFileName in fileNamesList: 
    currentDoc=Document(os.path.join(folderPath,xmlFileName)) 
    docxFileName=xmlFileName.replace('.xml','.docx') 
    currentDoc.save(os.path.join(folderPath,docxFileName)) 
    currentDoc.close() 

이 제공 : 내가 파이썬 DOCX를 사용하여 간단한 파이썬 스크립트를 시도

docx.opc.exceptions.PackageNotFoundError: Package not found at <first file name>.xml

내가 파이썬 DOCX이 .xml 파일을 열지 마십시오 때문입니다 추측하고있어, 하지만 그건 아주 무식한 추측입니다. 이 오류를 검색 할 때 찾을 수있는 것은 제대로 설치되지 않았다는 문제점 (.docx 대신 .docx 대신 .doc 파일을 사용함)입니다.

간단히 python-docx를 잘못 사용하고 있습니까? 그렇지 않다면 내가 사용해야 할 더 적합한 패키지 또는 기술이 있습니까?

+0

파일이 유효하거나 비어있는 docx 파일이 아닌 경우 해당 종류의 예외가 throw됩니다. – Ludisposed

답변

1

.xml 파일이 어떤 종류의 파일인지는 분명하지 않지만 XML 기반 Word 2003은 OPC (Open Packaging Convention) 형식이 아닌 사용 된 변환 형식이라고 생각합니다. Word 2007 이후 Word 문서.

python-docx은 지금 또는 지금까지 읽지 않으므로이 파일을 .docx 형식으로 변환하거나 XML을 직접 구문 분석해야합니다.

Windows를 사용할 수있는 경우 VBA를 사용하여 짧은 변환 스크립트를 작성한 다음 python-pptx을 사용하여 .docx 파일로 작업한다고 가정합니다. Word가 .xml 파일을로드하고 거기에서 이동할 수 있는지 확인하여 시작할 것입니다.

일괄 변환을 수행하는 유틸리티를 찾을 수는 있지만 빠른 검색에서 찾지 못했을 수 있습니다.

한 번만 인쇄하면 Word에서 파일을로드하므로 변환 단계가없는 VBA 스크립트를 사용하는 것이 좋습니다. python-docx.docx 개의 파일을 인쇄하지 않으며 해당 파일을 읽고 씁니다.

+0

그렇다면 VBA를 사용하지 않을 이유가 없습니다. 이것은 반 정기적으로해야 할 일입니다. 스크립트를 다루는 것이 편리 할 때 우선 관리해야합니다.하지만이 일괄 처리를 위해 내가 열리는'pyautogui '와 함께 무서운 것을 던지기 시작했습니다. 각 파일을 인쇄하십시오. 그와 동등한 VBA 스크립트는 더 나은 결과를 내기를 바랍니다. 도움 주셔서 대단히 감사합니다. :) – mazjin