режим записи создает новый файл если не существующий?

Я пытаюсь записать в файл, который уже не существует с помощью менеджера по контексту файла.

a=open ('C:/c.txt' , 'w')

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

24
задан RYS 15 September 2016 в 00:12
поделиться

4 ответа

Да, 'w' указан как создающий новый файл - как в документах сказано,

'w' для записи (усечение файла если он уже существует),

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

30
ответ дан 28 November 2019 в 23:47
поделиться

Если вы спрашиваете, как получить предупреждение о том, что файл не существует, вам нужно явно проверить это.

См. здесь

0
ответ дан 28 November 2019 в 23:47
поделиться

Скорее всего, вы пытаетесь писать в несуществующий каталог или в каталог, на запись в который у вас нет разрешения.

Если вы хотите записать в C:\foo\bar\foobar.txt, то убедитесь, что у вас есть C:\foo\bar\, который существует (и в случае, если разрешения работают в Windows, убедитесь, что у вас есть разрешение на запись туда).

Теперь, когда вы открываете файл в режиме записи, должен быть создан файл.

3
ответ дан 28 November 2019 в 23:47
поделиться

[Отредактировано, чтобы отразить, что проблема, скорее всего, не в прямой или обратной косой черте]

Если я правильно понял, вы хотите, чтобы файл создавался автоматически, не так ли?

при открытии в режиме записи создается файл для вас. Было бы более понятно, если бы вы сообщили нам точную ошибку, которую вы получаете. Это может быть что-то вроде того, что у вас нет разрешения на запись на C :.

Я ранее предположил, что это могло быть из-за косой черты, и указал, что OP может попробовать:

a = open(r'C:\c.txt', 'w')

Обратите внимание на r перед путем к файлу, что указывает на необработанный режим (то есть обратная косая черта не будет интерпретироваться как особая).

Однако, как указал Брайан Нил (а также другие, комментируя в другом месте), скорее всего, причина ошибки не в этом. Я сохраняю его здесь просто для исторических целей.

4
ответ дан 28 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: