问题描述
|
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: \"),\'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,exit): \")
main()
解决方法
我可以想到要遵循的2条轨道:
使用
raw_input
返回一个字符串,而不是input
返回一个函数(使您的测试userInput == \"decrypt\"
和类似的东西无效)
for line in in_file:
足以浏览文件,无需添加read_line = in_file.readline()