Подтвердить что ты не робот

Рассказывая Python о сохранении файла .txt в определенном каталоге в Windows и Mac

Как вы скажете Python, где сохранить текстовый файл?

Например, мой компьютер запускает файл Python с моего рабочего стола. Я хочу, чтобы он сохранил весь текстовый файл в папке моих документов, а не на моем рабочем столе. Как это сделать в script следующим образом?

name_of_file = raw_input("What is the name of the file: ")
completeName = name_of_file + ".txt"
#Alter this line in any shape or form it is up to you.
file1 = open(completeName , "w")

toFile = raw_input("Write what you want into the field")

file1.write(toFile)

file1.close()
4b9b3361

Ответ 1

Просто используйте абсолютный путь при открытии дескриптора файла для записи.

import os.path

save_path = 'C:/example/'

name_of_file = raw_input("What is the name of the file: ")

completeName = os.path.join(save_path, name_of_file+".txt")         

file1 = open(completeName, "w")

toFile = raw_input("Write what you want into the field")

file1.write(toFile)

file1.close()

Вы можете объединить это с os.path.abspath(), как описано в ответе Брайана, чтобы автоматически получить путь к папке "Документы пользователя". Ура!

Ответ 2

Используйте os.path.join для объединения пути к каталогу Documents с completeName (имя файла?), предоставленным пользователем.

import os
with open(os.path.join('/path/to/Documents',completeName), "w") as file1:
    toFile = raw_input("Write what you want into the field")
    file1.write(toFile)

Если вы хотите, чтобы каталог Documents относился к домашнему каталогу пользователя, вы можете использовать что-то вроде:

os.path.join(os.path.expanduser('~'),'Documents',completeName)

Другие предложили использовать os.path.abspath. Обратите внимание, что os.path.abspath не разрешает '~' в домашнем каталоге пользователя:

In [10]: cd /tmp
/tmp

In [11]: os.path.abspath("~")
Out[11]: '/tmp/~'