我想使用文本文件中的编码指令替换字符。

我的文本文件包含以下行:

This is a message

我想替换a -> ee -> as -> 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"))

10-06 08:42