Я пытаюсь записать в файл, который уже не существует с помощью менеджера по контексту файла.
a=open ('C:/c.txt' , 'w')
Вышеупомянутое не успешно выполняется. Как я создал бы файл для записи, если она действительно уже существует?
Да, 'w'
указан как создающий новый файл - как в документах сказано,
'w' для записи (усечение файла если он уже существует),
(явно подразумевая, что разрешено еще не существовать). Пожалуйста, покажите точную трассировку, а не только ваше собственное резюме, поскольку детали имеют значение - например, если фактический путь, который вы используете, отличается, возможно, отсутствует диск или какой-то промежуточный каталог; или могут быть проблемы с разрешением.
Если вы спрашиваете, как получить предупреждение о том, что файл не существует, вам нужно явно проверить это.
См. здесь
Скорее всего, вы пытаетесь писать в несуществующий каталог или в каталог, на запись в который у вас нет разрешения.
Если вы хотите записать в C:\foo\bar\foobar.txt
, то убедитесь, что у вас есть C:\foo\bar\
, который существует (и в случае, если разрешения работают в Windows, убедитесь, что у вас есть разрешение на запись туда).
Теперь, когда вы открываете файл в режиме записи, должен быть создан файл.
[Отредактировано, чтобы отразить, что проблема, скорее всего, не в прямой или обратной косой черте]
Если я правильно понял, вы хотите, чтобы файл создавался автоматически, не так ли?
при открытии в режиме записи создается файл для вас. Было бы более понятно, если бы вы сообщили нам точную ошибку, которую вы получаете. Это может быть что-то вроде того, что у вас нет разрешения на запись на C :.
Я ранее предположил, что это могло быть из-за косой черты, и указал, что OP может попробовать:
a = open(r'C:\c.txt', 'w')
Обратите внимание на r перед путем к файлу, что указывает на необработанный режим (то есть обратная косая черта не будет интерпретироваться как особая).
Однако, как указал Брайан Нил (а также другие, комментируя в другом месте), скорее всего, причина ошибки не в этом. Я сохраняю его здесь просто для исторических целей.