Режим записи создает новый файл, если он не существует? - PullRequest
24 голосов
/ 22 июня 2010

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

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

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

Ответы [ 4 ]

30 голосов
/ 22 июня 2010

Да, 'w' определяется как создание нового файла - как указано в документах ,

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

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

4 голосов
/ 22 июня 2010

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

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

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

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

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

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

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

3 голосов
/ 22 июня 2010

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

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

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

0 голосов
/ 22 июня 2010

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

См. здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...