2015-10-06 51 views
0

我想通过Python代码读取中文文件。但是我得到了一个混乱的输出。python unicode-当我想读取文件中的内容

以下是我的代码:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

with open('1.doc', 'r+') as f: 
    text = f.readlines() 
    print text 

输出:

\x01\x00\x00\xfe\xff\xff\xffy\x01\x00\x00z\x01\x00\x00{\x01\x00\x00|\x01\x00\x00}\x01\x00\x00~\x01\x00\x00\x7f\x01\x00\x00\x80\x01\x00\x00\x81\x01\x00\x00\x82\x01\ 

我知道,它必须在有一些编码或解码的问题。但我不知道如何弄清楚。

+1

你期望得到什么? –

+0

@一二三该文件的内容是中文。我想让它显示中文。 –

+1

如果你打开一个MS Word文档,你将不得不手动将其转换,或者如果你在Windows上使用COM接口,如http://stackoverflow.com/a/32049165/69893那里。 –

回答

0

这与中文无关。这是一个Word文档,它是一种二进制文件格式。您不能通过readlines阅读它:您需要将其从该二进制文件格式转换。像docx这样的图书馆将会有所帮助。

+0

'docx'库仅适用于.docx格式的Word 2007+文档,而不适用于使用.doc格式的较旧文档。 –

+0

我试图通过readlines读取它。和输出是一样的。 –

+0

@曾锐鸿我特别说你*不能*这样读,所以你为什么这么说? –

0

要显示Unicode你系统字符你必须配置我的系统。用sys.getdefaultencoding()检查你的环境配置是什么,如果不输出utf-8你不会显示中文。如果你使用encoding ='cp1252'读取Window,但首先检查环境。

+0

是的,你是对的。输出是ascii –

+0

@曾锐鸿所以谷歌如何合作配置你特定的编辑器和控制台,也 – LetzerWille

+0

好吧。谢谢。我会尽力去做。 –