2013-05-07 3 views
0

Итак, я в основном пишу программу, которая создает текстовые файлы, за исключением того, что я хочу, чтобы они были созданы в папке, которая находится в той же папке, что и файл .py. как мне это сделать? с помощью питона 3.3Создание файла python в локальном каталоге

+0

Возможно, это поможет? http://stackoverflow.com/questions/3918433/what-is-the-python-equivalent-of-unix-touch – squiguy

ответ

0

использование open:

open("folder_name/myfile.txt","w").close() #if just want to create an empty file 

Если вы хотите создать файл, а затем сделать что-то с ним, то лучше использовать with заявление:

with open("folder_name/myfile.txt","w") as f: 
    #do something with f 
+2

Должны использовать контекстные менеджеры для таких вещей. –

+0

Выполнение 'open (имя_файла, 'w'). Close()' будет обрезать файл, если файл уже существует и содержит какой-либо контент. Использование 'open (filename, 'a'). Close()' более безопасно. –

5

Чтобы найти каталог, в котором находится скрипт:

import os 

path_to_script = os.path.dirname(os.path.abspath(__file__)) 

Тогда вы можете использовать это для имени своего файла:

my_filename = os.path.join(path_to_script, "my_file.txt") 

with open(my_filename, "w") as handle: 
    print("Hello world!", file=handle) 
+1

+1. Но стоит отметить, что вы не можете доверять '__file__' после того, как сделали что-то, что могло изменить рабочий каталог. Если вы не знаете, что это значит, сделайте именно то, что делает этот пример, вызовите 'abspath' и сохраните его в переменной прямо в самом начале, а затем используйте эту переменную позже. – abarnert

+0

Кроме того, 'print >> handle," Hello world! "' Является 'SyntaxError'. OP использует Python 3.3. Попробуйте 'print (« Hello world! », File = handle)' вместо этого. – abarnert

+0

Действительно. Обновлено. – rakslice

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