使用pyWIN32读取西班牙语文件路径时出现问题,

2024-06-16 22:46:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用win32com将.docx文件转换为.txt文件。它工作得很好,直到它得到无法识别的西班牙语字符。在

DOC_FILEPATH = r"C:\Temp\Hugo- Ortíz -.docx"
s = find_between_r(DOC_FILEPATH, '.', '')
FILETXT = DOC_FILEPATH.strip(s)
FILETXT = FILETXT + "txt"
doc = win32com.client.GetObject(DOC_FILEPATH) 
text = doc.Range().Text 
with open(FILETXT, "wb") as f:
   f.write(text.encode("utf-8"))

当win32时com.客户端读取DOC\u文件路径,我得到这个错误

^{pr2}$

有没有办法在不更改文件名的情况下读取该文件?在


Tags: 文件texttxtdocbetweenfind字符temp
1条回答
网友
1楼 · 发布于 2024-06-16 22:46:57

这不是Word Automation的工作原理。查看Word对象模型[MS.Docs]: Word)以获取更多详细信息。在

您应该创建一个Word.Application实例,它将处理文档。在

我改编了[SO]: Python - Using win32com.client to accept all changes in Word Documents,并在一个虚拟文档上测试了它。在

代码.py

#!/usr/bin/env python3

# -*- coding: cp1252 -*-

import sys
import os
import win32com.client as w32comcl


if __name__ == "__main__":
    print("Python {:s} on {:s}\n".format(sys.version, sys.platform))
    doc_path = r"Documento ficticío.docx"
    txt_path = os.path.splitext(doc_path)[0] + ".txt"
    word = w32comcl.Dispatch("Word.Application")
    try:
        word.Visible = False
        doc = word.Documents.Open(os.path.abspath(doc_path))
        try:
            text = doc.Range().Text
            with open(txt_path, "wb") as f:
                f.write(text.encode("utf8"))
        finally:
            doc.Close(False)
    finally:
        word.Application.Quit()

注意事项

输出:

(py35x64_test) e:\Work\Dev\StackOverflow\q049179872>dir /b
code.py
Documento ficticío.docx

(py35x64_test) e:\Work\Dev\StackOverflow\q049179872>"e:\Work\Dev\VEnvs\py35x64_test\Scripts\python.exe" code.py
Python 3.5.4 (v3.5.4:3f56838, Aug  8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32


(py35x64_test) e:\Work\Dev\StackOverflow\q049179872>dir /b
code.py
Documento ficticío.docx
Documento ficticío.txt

(py35x64_test) e:\Work\Dev\StackOverflow\q049179872>type "Documento ficticío.txt"
Párrafo ficticío0: 1234567890qwertyuioopasdfghjklzxcvbnm.

相关问题 更多 >