шифрование / дешифрование с помощью пользовательского ввода

#python #encryption

#python #шифрование

Вопрос:

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

Комментарии:

1. В чем вопрос? Пожалуйста, не забрасывайте код на наши головы без предоставления информации о том, что этот код делает или должен делать.

2. получаете ли вы какие-либо обратные данные? Печать (decrypted_line) что-то печатает?

Ответ №1:

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

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