如何将XOR加密后的单个字符合并为字符串并完整写入文件?
问题分析
你的代码里newletter变量会在每次循环时被新的加密字符覆盖,导致最后写入文件的只有最后一次循环生成的字符。要解决这个问题,需要先把所有加密后的字符合并成完整字符串,再写入文件。
修正后的代码
key = 7 encrypted_text = "" # 初始化空字符串存储所有加密字符 # 使用with语句自动管理文件,无需手动调用close with open('enprac.txt', 'r') as file: for line in file: words = line.split() for char in words: for letter in char: number = ord(letter) newnumber = number ^ key newletter = chr(newnumber) encrypted_text += newletter # 将每个加密字符追加到字符串中 print(newletter) # 写入完整的加密字符串到目标文件 with open('decrypt.txt', 'w') as file2: file2.write(encrypted_text)
关键修改点
- 新增
encrypted_text变量,用来累加所有加密后的字符,避免单个变量被循环覆盖。 - 用
with语句操作文件,Python会在代码块结束后自动关闭文件,比手动调用close()更安全,也更简洁。 - 最后一次性将完整的
encrypted_text写入文件,确保所有加密内容都被保存。
内容的提问来源于stack exchange,提问作者user20232221
相关产品推荐
相关产品推荐

