通过用户输入进行加密/解密

问题描述

| 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()