【问题标题】:Inserting utf-8 encoded string to list in python将 utf-8 编码的字符串插入 python 中的列表
【发布时间】:2018-07-11 00:30:10
【问题描述】:

我正在尝试将文件的内容读入列表。但是,文件内容可能包含一些非 ASCII 字符。我在读取时使用了“utf-8”编码,并且在插入列表时还对读取的每一行进行了编码。当我尝试打印列表时,它仍然以非 ASCII 格式显示字符。我希望它是一个纯字符串,这样我就可以执行一些字符串操作,比如 find。 任何帮助将不胜感激。

  • file=temp.txt

  • 内容= 欧盟委员会。 (2005 年)。多元化商业案例 - 工作场所的良好实践。卢森堡:欧洲共同体官方出版物办公室 Hardmeier, Sibylle & Vinz, 达格玛。 (2007 年)。多样性和交叉性。 Eine kritische Würdigung der Ansätze für die Politikwissenschaft。女性政治。 Zeitschrift für feministische Politikwissenschaft, 16 (1), 23-33 卡勒特,海克。 (2003 年)。性别主流化大学 - Anleitung zum qualitätsbewussten Handeln。奥普拉登:Leske + Budrich

代码编写-

import os
import io
f = io.open(os.path.join(path,"temp.txt"),mode="r",encoding="utf8")
lines = [line.encode('utf-8').rstrip('\n') for line in f]
print lines

【问题讨论】:

  • 不清楚换行符在哪里,因此很难确定您的预期输出是什么
  • 我为错误的格式道歉。我已经用实际文件的链接更新了问题。

标签: python-2.7 list file-io utf-8


【解决方案1】:

当您使用encoding="utf8" 打开并读取文件时,它已经为您完成了解码。您的line.encode('utf-8') 仅用于使其成为bytearray 而不再是纯文本。去掉.encode('utf-8')应该没问题。

【讨论】:

  • 我已经尝试过了,但输出仍然不正确- [u'European Commission. (2005 年)。多元化商业案例 - 工作场所的良好实践。卢森堡:欧洲共同体官方出版物办公室,u'Hardmeier、Sibylle & Vinz、Dagmar。 (2007 年)。多样性和交叉性。 Eine kritische W\xfcrdigung der Ans\xe4tze f\xfcr die Politikwissenschaft。女性政治。 Zeitschrift f\xfcr feministische Politikwissenschaft, 16 (1), 23-33', u'Kahlert, Heike。 (2003 年)。性别主流化一个 Hochschulen - Anleitung zum qualit\xe4tsbewussten Handeln。奥普拉登:Leske + Budrich']
  • 然后尝试将.encode('utf-8') 更改为.decode('utf-8')
  • 得到这个异常 -> UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc'
  • 尝试使用codecs.open而不是io.open,然后再次删除.encode('utf-8')
  • 仍然没有成功。代码有效,但是当我打印列表时,字符串元素未格式化
猜你喜欢
  • 2012-08-09
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 2015-06-02
  • 2018-01-26
相关资源
最近更新 更多