2016-08-01 110 views
0

我在尝试替换文件中的字符时遇到了问题。脚本替换文件中的字符

#!/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 

如何解决呢?

+0

阅读[问]和[mcve] – Julien

+0

“替换字符”的定义不明确。上述示例的具体要求是什么以及您的预期结果是什么? – kaylum

+0

看起来你试图实现什么更通常称为凯撒密码或旋转密码 –

回答

1

什么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转换为TC转换为GG转换为CT转换为A

那就不要用字符串混淆翻译和字符串替换

字符串替换,替换整个单词。字符串翻译,由每个字符替换。