如何替换unicode字符?

2024-10-04 05:29:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含以下内容的文件(input.txt):

é

我正在运行以下命令,但未能将unicode字符替换为字符“a”

尝试1:打印空白。在

>>> file = open("input.txt","r")
>>> print file.read().replace(u"\u00E9","a")

尝试2:打印空白。在

^{pr2}$

注意:我已经看了这个question,答案(尝试2)表明它不起作用,不确定原因。在

编辑:

正如暗影游侠在评论中指出的,我的问题是不完整的。对此我深表歉意。在

以下是尝试1的完整代码:

>>> file = open("input.txt","r")
>>> print file.read()
>>> é
>>> print file.read().replace(u"\u00E9","a")
>>> 

以下是尝试2的完整代码:

>>> file = open("input.txt","r")
>>> print file.read()
>>> é
>>> print file.read().decode("utf-8").replace(u"\u00E9","a").encode("utf-8")
>>> 

Tags: 文件代码命令txtreadinputunicodeopen
1条回答
网友
1楼 · 发布于 2024-10-04 05:29:23

您正在read-only模式下打开文件。如果您正试图实现这一点,您将无法修改文件的内容。在

如果您只是试图操作从文件中读取的字符串,那么我建议您指定文件编码,以便在程序中无缝地操作unicode字符。在

像这样:

PYTHON 2

# -*- coding: utf-8 -*-

from __future__ import unicode_literals
import io

with io.open("input.txt", mode="r", encoding="utf-8"):
    c = file.read()
    c = c.replace("é", "a")
    print c

PYTHON 3

^{pr2}$

相关问题 更多 >