我想使用文本文件中的编码指令替换字符。
我的文本文件包含以下行:
This is a message
我想替换
a -> e
,e -> a
,s -> 3
因此,该行显示为:
Thi3 i3 e massega
我尝试了以下代码,但一次只能更改一行中的一个字符。
import sys
import codecs
def encode():
path = "C:\Users\user\Desktop"
basename = "assgn2part1.txt"
filename = path + "\\" + basename
#file = open(filename, "rt")
f = codecs.open(filename,encoding='utf-8')
contents = f.read()
print contents ,"\n"
newcontents = contents.replace('a','e')
newcontents = contents.replace('s', '3')
print newcontents
f.close()
最佳答案
替换为:
newcontents = contents.replace('a','e')
newcontents = contents.replace('s', '3')
有了这个:
newcontents = contents.replace('a','e')
newcontents = newcontents.replace('s', '3')
或更妙的是:
newcontents = contents.replace('a','e').replace('s', '3')
您的代码似乎只是尝试用“e”代替“a”,而不是用“a”代替“e”。为此,您需要以下内容:
import string
newcontents = contents.translate(string.maketrans("aes", "ea3"))