2014-12-06 86 views
0

我试图读取2个文本文件,一个编码为UTF8。我在PyCharm中使用Python 3。从2档在PyCharm中读取UTF8编码文件

实例:

1. 
its group are in Spain . 
its group are in Antarctica . 
2. 
sus grupos estan en España . 
sus grupos estan en Antártida . 

在命令行中,我使用:

paste -d "\n" hw5-tiny.en tiny.es | python3 ibm.py 

将文件读入sys.stdin。

在我的代码,我用下面的读取粘贴文件:

#!/usr/bin/env python 
#coding=utf8 
import itertools 
import sys 

for fgn_sent,eng_sent in itertools.zip_longest(*[sys.stdin]*2): 
    print(fgn_sent) 

然后我得到的错误:

Traceback (most recent call last): 
    File "ibm0.py", line 33, in <module> 
    initialize_probabilities() 
    File "ibm0.py", line 13, in initialize_probabilities 
    for fgn_sent,eng_sent in itertools.zip_longest(*[sys.stdin]*2): 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/encodings/ascii.py", line 26, in decode 
    return codecs.ascii_decode(input, self.errors)[0] 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 863: ordinal not in range(128) 

其中13号线高于线for...线。

+1

编码注释对您的程序是否可以处理UTF8没有影响。请发布您的相关实际代码,以及回溯 – MattDMo 2014-12-06 20:33:52

+0

的**全文**。明白了。谢谢。没有意识到这一点。我已经更新了这个问题 – 2014-12-06 21:10:24

回答

-1

这个帖子回答我的问题:How to set sys.stdout encoding in Python 3?

我加PYTHONIOENCODING=utf-8:surrogateescape1我的命令行。

paste -d "\n" tiny.en tiny.es | PYTHONIOENCODING=utf-8:surrogateescape python3 ibm0.py