这是学校的作业。我正在使用以下代码:
def main():
letters = create_letters()
infile = open('note.txt', 'r')
text = infile.readlines()
infile.close()
outfile = open('notetranslate.txt', 'w')
outfile.write(text[letters])
outfile.close()
def create_letters():
return {'A':'`', 'a':'~', "B":'1', 'b':'!', 'C':'2', 'c':'@', 'D':'3', 'd': '#', 'E':'4',
'e':'$', 'F':'5', 'f':'%', 'G':'6', 'g':'^', 'H':'7', 'h':'&', 'I':'8', 'i':'*', 'J':'9', 'j':'(',
'K':'0', 'k':')', 'L':'-', 'l':'_', 'M':'=', 'm':'+', 'N':'[', 'n':'{', 'O':']', 'o':'}',
'P':'|', 'p':'/', 'Q':';', 'q':':', 'R':',', 'r':'<', 'S':'.','s':'>','T':'?', 't':'"',
'U':'`', 'u':'~', 'V':'1', 'v':'!', 'W':'2', 'w':'@', 'X':'3', 'x':'#', 'Y':'4','y':'$',
'Z':'5', "z":'%'}
main()
运行此代码时,我得到一个错误:列表索引必须是整数或切片,而不是字典。
我的任务是编写一个程序,该程序将读取文本文件的内容,然后使用代码字典将文件内容的加密版本写入单独的文本文件。第二个文本文件中的每个字符都应包含文本的加密版本。
编写第二个程序(或将用户的选项菜单添加到当前程序中),以打开一个加密版本并将解密后的文本显示在屏幕上,以供用户阅读
答案 0 :(得分:1)
目标是用letters
中的字典逐个字符替换字符串。
infile = open('note.txt', 'r')
text = infile.read() # read not readlines
infile.close()
subs_text = []
for letter in text:
subs_text.append(letters[letter]) # lookup the character to be substituted with
subs_text = "".join(subs_text)
outfile = open('notetranslate.txt', 'w+') # use w+ to create file if it does not exist
outfile.write(subs_text)
outfile.close()