python - 无法解析使用 latin-1 编码的文件

标签 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 编码打开文件。如何停止此错误并成功解析文件?

最佳答案

输出文件编码可能仍然是 ASCII。您也应该使用正确的编码打开它(不必是 la​​tin-1,可能 utf-8 更合适,具体取决于您的环境)。

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

关于python - 无法解析使用 latin-1 编码的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56721619/

相关文章:

python - 使用一个滚动条滚动多个列表框而不使用类

python - 无法在Python脚本上拖动文件

python - 理解 Python super() 和 __init__() 方法

python - 如何使用 lxml 进行不区分大小写的 Python XPath 搜索?

python - 更新 Python 3.6 的 pip3?

python-3.6 - 为什么 -1*List 对象返回一个空列表?

python - 如何使用 OpenCV 和 Python 的蒙版(或透明度)在图像中查找模板?

python - 迭代两个不同长度的生成器,其中一个环绕

python - 如何对 Pandas 的不规则时间间隔执行滚动平均值?

python - sklearn python 错误。标识符中的无效字符