2014-12-06 87 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