所以我试着编写一个加密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()
答案 0 :(得分:2)
code = codes.read()
此时code
是一个字符串,在读取文件时总是如此。 Python不会自动找出将其转换为什么,特别是因为文件可以包含任何字面意思。要转换为字典:
from ast import literal_eval
code = literal_eval(codes.read())