我怎么能改变这个,所以替代有效?

时间:2014-02-18 13:58:11

标签: python text text-files

线索文件包含2个字母,我希望用第二个字母代替文本文件中的第一个字母。它只打印出文本文件3次,没有任何变化。

这就是线索文本文件中的内容:

  

KM

     

OQ

     

EG

这就是文本文本文件中的内容:

  

g fmnc wms bgblr rpylqjyrc gr zw fylb。 rfyrq ufyr amknsrcpq ypc dmp。 bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle。 sqgle qrpgle.kyicrpylq()gq pcamkkclbcb。 lmu ynnjw ml rfc spj。

我的代码:

import string
def convertWords():
    cluesDict = {}
    with open('Clues.txt') as c:

        f = open('Clues.txt', 'r')
        clues = f.readlines()
        f = open('Text.txt', 'r')
        text = f.read()
        for z in clues:
            text.maketrans(z[0], z[1])
            print(text)

请告诉我如何纠正它?

1 个答案:

答案 0 :(得分:0)

您的代码中存在两个问题。第一个是maketrans创建翻译,但不执行翻译。您应该将该代码更改为:

text.maketrans(z[0], z[1])
print(text.translate(trans))

第二个问题是线索是大写的,而文本是小写的。您可以通过在阅读时将线索更改为小写来纠正错误:

clues = [clue.lower() for clue in f.readlines()]

相反,如果您希望线索同时适用于大写和大写,您可以这样做:

text.maketrans(z[0].lower() + z[0].higher(), z[1].lower() + z[1].higher())
print(text.translate(trans))