脚本替换文件中的字符
问题描述:
我在尝试替换文件中的字符时遇到了问题。脚本替换文件中的字符
#!/usr/bin/env python
with open("crypto.txt","r") as arquivo:
data = arquivo.read()
for caracter in data:
if "a" in data:
data = data.replace("a","c")
elif "b" in data:
data = data.replace("b","d")
elif "c" in data:
data = data.replace("c","e")
elif "d" in data:
data = data.replace("d","f")
elif "e" in data:
data = data.replace("e","g")
elif "f" in data:
data = data.replace("f","h")
elif "g" in data:
data = data.replace("g","i")
elif "h" in data:
data = data.replace("h","j")
elif "i" in data:
data = data.replace("i","k")
elif "j" in data:
data = data.replace("j","l")
elif "k" in data:
data = data.replace("k","m")
elif "l" in data:
data = data.replace("l","n")
elif "m" in data:
data = data.replace("m","o")
elif "n" in data:
data = data.replace("n","p")
elif "o" in data:
data = data.replace("o","q")
elif "p" in data:
data = data.replace("p","r")
elif "q" in data:
data = data.replace("q","s")
elif "r" in data:
data = data.replace("r","t")
elif "s" in data:
data = data.replace("s","u")
elif "t" in data:
data = data.replace("t","v")
elif "u" in data:
data = data.replace("u","w")
elif "v" in data:
data = data.replace("v","x")
elif "w" in data:
data = data.replace("w","y")
elif "x" in data:
data = data.replace("x","z")
print data
脚本读取一个名为crypto的txt文件,并开始根据上述语句替换字符。文件里面写着阿罗哈这个词。
这是结果我得到每次我运行该脚本
clohc
elohe
glohg
ilohi
iloji
klojk
如何解决呢?
答
什么Python的 string translate
import string
with open("crypto.txt","r") as arquivo:
data = arquivo.read()
out = data.translate(string.maketrans("abcdefghijklmnopqrstuvw","defghijklmnopqrstuvwxyz"))
print out
它直接equlal到perl tr
功能。这是作品如下
图片介绍A
转换为T
,C
转换为G
,G
转换为C
和T
转换为A
那就不要用字符串混淆翻译和字符串替换
字符串替换,替换整个单词。字符串翻译,由每个字符替换。
阅读[问]和[mcve] – Julien
“替换字符”的定义不明确。上述示例的具体要求是什么以及您的预期结果是什么? – kaylum
看起来你试图实现什么更通常称为凯撒密码或旋转密码 –