шифрование / дешифрование с пользовательским вводом - PullRequest
0 голосов
/ 20 апреля 2011

ИДК, почему это не вывод в файл, какие-либо идеи или помощь?

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

1 Ответ

0 голосов
/ 20 апреля 2011

Я могу вспомнить 2 трека, которым нужно следовать:

  • используйте raw_input, которая возвращает строку, вместо input, которая возвращает функцию (которая делает недействительными ваши тесты userInput == "decrypt" и подобные)
  • for line in in_file: достаточно для просмотра файла, вам не нужно добавлять read_line = in_file.readline()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...