Как убедиться, что файл существует или может быть создан перед записью в Python? - PullRequest
3 голосов
/ 12 октября 2010

Я пишу функцию и хочу, чтобы touch файл, чтобы я мог писать в этот файл.Если файл не существует, я получу ошибку.Как я могу это сказать?

Ответы [ 3 ]

12 голосов
/ 12 октября 2010

Просто откройте файл для записи, и он будет создан, если он не существует (при условии, что у вас есть соответствующие права на запись в это место).

f = open('some_file_that_might_not_exist.txt', 'w')
f.write(data)

Вы получите IOError, еслиВы не можете открыть файл для записи.

7 голосов
/ 13 октября 2010

За документы, os.utime () будут работать аналогично касанию, если вы укажете None в качестве аргумента времени, например:

os.utime("test_file", None)

Когда я проверял это (в Linux и более поздних версиях Windows) я обнаружил, что test_file должен был уже существовать.YMMV в других ОС.

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

0 голосов
/ 12 октября 2010

если вы действительно хотите вызвать ошибку, если файл не существует, вы можете использовать

import os
if not os.access('file'):
    #raise error
f = open('file')
#etc.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...