2015-04-06 7 views
0

Это базовая программа, которая должна взять строку из предварительно сделанного файла или взять пользовательский ввод, затем зашифровать его и сохранить в файл с помощью цезарного шифра.Загрузка программных файлов, но не изменение значений

Моя проблема в том, что по какой-то причине, когда я запускаю программу и выбираю опцию «Загрузить файл», она будет проходить через весь код без сообщений об ошибках, однако запись в файл .txt не будет зашифрована, кто-нибудь знает, как исправить это?

Для аккуратным макета кода здесь ссылку Pastebin: http://pastebin.com/dJJ1M4g7

def main(): 

    #if they want to save the file after the encrypting if statement 
    ans = input("Would you like to save to a file of read a file, press w or  r").lower() 

    if ans == "w": 
     text = input("What is your text you want to enter").lower() 

     save_file(caeser(text)) 

    elif ans == "r": 

     caeser(load_file()) 

# organise loop & function 
def caeser(text): 
     shift = int(input("How much would you like to shift?: ")) 
     shifted_list = [] 
     for letter in text: 
      character_lower = letter.lower() 
      ASCII = ord(character_lower) 
      shift = shift % 26 
      shifted_letter = ASCII + shift 
      shifted_char = chr(shifted_letter) 
      shift_loop = shifted_letter - 26 
      shift_loop_char = chr(shift_loop) 
      if shifted_letter >= 97 and shifted_letter <= 122: 
       shifted_list.append(shifted_char) 
       text = ''.join(shifted_list) 
      elif shift_loop >= 97 and shift_loop <= 122: 
       shifted_list.append(shift_loop_char) 
       text = ''.join(shifted_list) 
      else: 
       shifted_list.append(character_lower) 
       text = ''.join(shifted_list) 

      encrypted = text 

     return encrypted 

def save_file(text): 
    name = input("Enter filename") 
    file = open(name, "w") 
    file.write(text) 
    file.close() 

# error protection needs to be added 
def load_file(): 
    name = input("what is your file name? (include .txt)") 
    file = open(name, "r") 
    text = file.read() 
    file.close() 
    return text 

main() 

ответ

0
caeser(load_file()) 

добавить файл сохранения вокруг ...

0

load_file не делает запись, так вы можете либо сделать то, что вы сделали для варианта записи

save_file(load_file()) 

или позвоните по эл. Функции сохранения

save_file(text)