用户输入加密/解密
问题描述:
Idk为什么这不会输出到文件,有什么想法或帮助?用户输入加密/解密
def encrypt(text, key):
alphabet = "abcdefghijklmnopqrstuvwxyz"
text = text.lower()
cipherText = ""
for ch in text:
idx = alphabet.find(ch)
cipherText = cipherText + key[idx]
return cipherText
def decrypt(cipherText, key):
alphabet = "abcdefghijklmnopqrstuvwxyz"
cipherText = cipherText.lower()
text = ""
for ch in cipherText:
idx = key.find(ch)
text = text + alphabet[idx]
return text
def main():
userInput = input("Operation (encrypt, decrypt, exit): ")
while(userInput != "exit"):
if(userInput == "encrypt"):
in_file = open(input("Input file name: "), 'r')
out_file = open(input("Output file name: "), 'w')
password = input("Password: ")
for line in in_file:
read_line = in_file.readline()
encrypted_line = encrypt(read_line, password)
out_file.write(encrypted_line)
print(encrypted_line)
in_file.close()
out_file.close()
elif(userInput == "decrypt"):
in_file = open(input("Input file name: "), 'r')
out_file = open(input("Output file name: "), 'w')
password = input("Password: ")
for line in in_file:
read_line = in_file.readline()
decrypted_line = decrypt(read_line, password)
out_file.write(decrypted_line)
print(decrypted_line)
in_file.close()
out_file.close()
else:
print("Invalid choice!")
userInput = input("Operation (encrypt, decrypt, exit): ")
main()
答
我能想到的2个轨道以遵循:
- 使用
raw_input
,它返回一个字符串,而不是input
返回一个函数(即无效您的测试userInput == "decrypt"
和类似) -
for line in in_file:
就足以浏览一个文件,你不需要添加read_line = in_file.readline()
什么问题?请不要在没有提供信息的情况下将代码扔在我们的头上,代码正在做什么或应该做什么。 – 2011-04-20 06:33:47
idk =我不知道 – 2011-04-20 06:49:28
你有没有回溯?打印(decrypted_line)打印什么? – joaquin 2011-04-20 07:15:51