如何在python

时间:2016-11-10 21:50:50

标签: python encryption

所以我试着编写一个加密word文档并在另一个文档中解密的程序。如果我把密钥放入程序但我想让它从key.txt读取密钥,我能够让程序工作。当我将密钥放入程序时,我不断收到错误(AttributeError:' str'对象没有属性' items')。任何帮助表示赞赏。感谢

这是密钥文件包含的内容 {' A':' 6'' a''〜',' B':&#39 ; 66',''&#39 ;;',' C':'<',' c& #39;:' @',' D':'%$',' d':'#&#39 39;,\ ' E'' 5',' e'' $',' F':' 3',' f':'%',' G':' 71',' g' :' ^',' H':' 72',' h':'&',& #39;我'' 4','我':' *',\ ' J'' 74',' j':'(',' K':' 75','')',' L':' 1',' l' :' _',' M':' 77',' m':'`',' ; N':' /:',\ ' n'' - ',' O'' 79',' o':' +',' P':' 2',' p':' =',' Q&#39 ;:' 99',' q':' 9',' R':' 82',' ;''>',' S':' 83',\ '' [',' T':''' t':' ]',' U':';',' u':' {',' V&# 39;:' 86',' v':'}',' W':' 7',& #39; w':' /',\ ' X':' / +',' x':' 8',' Y':' ;%(',' y':' 0',' Z':' 90',' z&# 39;:' $ 122#39;}

继承人加密

def main():

codes = open('key.txt', 'r')
code = codes.read()

inputfile = open('text.txt', 'r')
paragraph = inputfile.read()
inputfile.close()

encrypt = open('Encrypted_File.txt', 'w')
for ch in paragraph:
    if ch in code:
        encrypt.write(code[ch])
    else:
        encrypt.write(ch)
encrypt.close()

main()

继承人解密

def main():
codes = open('key.txt', 'r')
code = codes.read()

inputfile = open('Encrypted_File.txt', 'r')
encrypt = inputfile.read()
inputfile.close()

code_items = code.items()


for ch in encrypt:
    if not ch in code.values():
        print(ch, end='')
    else:
        for k,v in code_items:
            if ch == v:
                print(k, end='')
main()

1 个答案:

答案 0 :(得分:2)

code = codes.read()

此时code是一个字符串,在读取文件时总是如此。 Python不会自动找出将其转换为什么,特别是因为文件可以包含任何字面意思。要转换为字典:

from ast import literal_eval

code = literal_eval(codes.read())