Рассказывая 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()
Ответы
Ответ 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/~'