2015-03-31 2 views
-2

В моем проекте python есть 2 файла. Я создал папку с именем files, поэтому, когда пользователь пишет что-то в текстовом редакторе, он сохраняет ее в этой папке, а затем, когда пользователь открывает текстовый редактор, они набирают это имя и ищут его в каталоге files. Как я смогу это сделать?Как я могу сделать python сохранять файл в другом месте?

Код для текстового редактора:

def edit(): 
    os.system('cls' if os.name == 'nt' else 'clear') 
    print ("EDIT") 
    print ("-------------") 
    print ("Note: Naming this current document the same as a different document will replace the other document with this one.") 
    filename = input("Plese enter a file name.") 
    file = open(filename, "w") 
    print ("FILE: " +filename+".") 
    lines = get_lines() 
    file.write('\n'.join(lines)) 

def get_lines(): 
    print("Enter 'stop' to end.") 
    lines = [] 
    line = input() 
    while line != 'stop': 
     lines.append(line) 
     line = input() 
    return lines 

Text Viewer Код:

def textviewer(): 
    os.system('cls' if os.name == 'nt' else 'clear') 
    print ("Text Viewer.") 
    file_name = input("Enter a text file to view: ") 
    file = open(file_name, "r") 
    print ("Loading text...") 
    time.sleep(0.5) 
    os.system('cls' if os.name == 'nt' else 'clear') 
    print(file.read()) 
    edit_text = input("Would you like to edit it? (y for yes, n for no)") 
    if edit_text == "y": 
     file = open(file_name, "w") 
     print ("You are now in edit mode.") 
     lines = get_lines 
     file.write('\n'.join(lines)) 
     time.sleep(2) 
    if edit_text == "n": 
     print ("Press enter to exit") 
     input() 
+0

Вы можете использовать 'os.path.join', чтобы добавить путь к папке' files' к имени входного файла. –

+0

Как и где я буду использовать его? Я никогда не использовал 'os' раньше, только при использовании прозрачного экрана, но это все. – VirtualHat

+0

Прошу прощения, но вы действительно должны начать с поиска документации на https://python.org. –

ответ

2

Если вы не хотите filename следует рассматривать относительно текущего рабочего каталога, вы должны преобразовать его в более конкретный абсолютный путь, прежде чем передать его open. Используйте os.path.join объединить имя каталога и имя файла вместе в платформе независимым образом:

directory = "/media/GENERAL/Projects/files" 
filename = input("Plese enter a file name.") 
file = open(os.path.join(directory, filename), "w") 

Unrelated к этому вопросу, но с участием тех же части коды, я предложил бы использовать with заявления для обработки файлов (with open(whatever) as file:). См. the docs для получения более подробной информации.

Смежные вопросы