2014-02-20 51 views
1

这是给下面的错误我尝试遍历在MS Word段落使用win32com蟒蛇

print Text 
File "C:\Python27\lib\encodings\cp437.py", line 12, in encodereturn codecs.charmap_encode(input,errors,encoding_map) 
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2026' in position 0: 
character maps to undefined 

我使用的代码是

import win32com.client 
import os 
MSWord = win32com.client.Dispatch("Word.Application") 
MSWord.Visible = True 
Document = MSWord.Documents.Open(os.getcwd()+'\\' + 'MARS.doc') 
for paragraph in Document.Paragraphs: 
    Text = paragraph.Range.Text 
    print Text 
+0

虽然我们很多人会很乐意回答您的问题,但如果您向我们展示您已经尝试过的代码,我们更有可能了解问题并提供有用的答案。以下是关于如何提供[最小,完整,测试和可读](http://stackoverflow.com/help/mcve)代码的一些信息。欢迎来到堆栈溢出! – mhlester

+1

当你[编辑]你的问题时,选择代码部分并按下'{}'按钮。这会使其正确缩进以显示。看看编辑窗口下面的预览,看看你的代码将如何看待 – mhlester

+0

@ mhlester +1进行辅导,我为他们做了编辑,希望这也有帮助 – Schollii

回答

0

你的文字有不能打印Unicode字符标准输出。尝试

Document = MSWord.Documents.Open(os.getcwd()+'\\' + 'MARS.doc') 
counter = 0 
for paragraph in Document.Paragraphs: 
    counter += 1 
    Text = paragraph.Range.Text 
    print "paragraph to edit:", counter, ":" 
    print str(Text).encode('ascii', 'replace') 

这样,不可打印的字符将显示为'?'。但是如果你在你的问题中澄清你真的想要做什么(可能是一些文本处理),你会得到更多有用的答案。

+0

我希望看到段落编号,以便我可以在需要编辑第 – user2481458

+0

请解释“段落号码” – Schollii

+0

我把一个计数在段落迭代,所以我可以看到在ms字位置,我需要编辑 – user2481458