python-2.7 - 如何在 python 2.7 中读取非 ascii 字符
问题描述
我知道这可能是一个非常普遍的问题,并且已经给出了很多解决方案。我无法为我的问题找到解决方案,如果有任何重复的帖子,或者如何解决它,请有人告诉我。
我需要读取同时具有 ascii 和非 ascii 字符的源数据(在 python2.7 中需要帮助)。阅读后我需要对源数据进行一些比较,然后将其写入目标文件。
with open('read.txt', "r") as file:
reader = csv.reader(file, delimiter='\t')
for lines in reader:
LST_NM = (lines[0])
print(LST_NM)
我的源文件是:read.txt
"Abràmoff"
使用这个非 ascii 字符,我的代码给出以下错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 266: ordinal not in range(128)
谢谢!!!
解决方案
您需要确定用于创建文件的编码。例如,如果您的文件是使用 utf-8 编写的,那么您可以使用如下内容:
your_encoding = 'utf-8'
import codecs
f = codecs.open('read.txt', encoding=your_encoding)
for line in f:
print repr(line)
您可以尝试的其他一些编码包括 Windows 上常见的 'cp1252' 和可能的 'latin_1'
推荐阅读
- php - 带有可变变量的 PHP INI 数组
- machine-learning - 学习 Sin 函数
- javascript - 我无法从 React JS 获得 ReactDOM.render?
- javascript - 如何循环遍历一组值以优化对函数的调用次数?
- ios - 不调用约束协议扩展中的函数实现
- mysql - 向 WordPress 元表添加索引是个坏主意吗?
- vba - 如何使用 VBA 仅对包含数据的某些单元格进行数字格式化
- git - git rebase --interactive 只显示最近的两次提交
- reactjs - 我在哪里可以找到 react proptypes 警告的来源?
- ios - 如何使用 Flutter 打开 iPhone 上的默认电子邮件应用程序?