无法解析具有latin-1编码的文件

时间:2019-06-23 06:37:56

标签: python python-3.6

我正在尝试从斯坦福情感数据库中解析一大笔推文(请参见此处:http://help.sentiment140.com/for-students/),以下是我的代码:

def init_process(fin, fout):
    outfile = open(fout, 'a')
    with open(fin, buffering=200000, encoding='latin-1') as f:
        try:
            for line in f:
                line = line.replace('"', '')
                initial_polarity = line.split(',')[0]
                if initial_polarity == '0':
                    initial_polarity = [1, 0]
                elif initial_polarity == '4':
                    initial_polarity = [0, 1]

                tweet = line.split(',')[-1]
                outline = str(initial_polarity) + ':::' + tweet
                outfile.write(outline)
        except Exception as e:
            print(str(e))
    outfile.close()

init_process('training.1600000.processed.noemoticon.csv','train_set.csv')

我遇到了以下问题:

'ascii' codec can't encode characters in position 12-14: ordinal not in range(128)

这没有意义,因为我正在使用latin-1编码打开文件。如何停止此错误并成功解析文件?

1 个答案:

答案 0 :(得分:4)

它的外文件编码可能仍然是ASCII。您也应该使用正确的编码打开它(不必一定是latin-1,也许utf-8取决于您的环境更合适)。

Åsmund的注释:文件编码是特定于语言环境的,您应该考虑将语言环境更改为可以处理非ASCII文本的语言。