open () в Python не создает файл, если он не существует

565
задан smci 23 August 2016 в 08:14
поделиться

5 ответов

Вы должны использовать open с режимом w+:

file = open('myfile.dat', 'w+')
740
ответ дан 22 November 2019 в 22:00
поделиться
>>> import os
>>> if os.path.exists("myfile.dat"):
...     f = file("myfile.dat", "r+")
... else:
...     f = file("myfile.dat", "w")

r + означает чтение / запись

27
ответ дан 22 November 2019 в 22:00
поделиться

open('myfile.dat', 'a') работает для меня, просто отлично.

в py3k ваш код вызывает ValueError:

>>> open('myfile.dat', 'rw')
Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    open('myfile.dat', 'rw')
ValueError: must have exactly one of read/write/append mode

в python-2.6 он вызывает IOError.

6
ответ дан 22 November 2019 в 22:00
поделиться

Измените «rw» на «w +»

Или используйте «a +» для добавления (без удаления существующего содержимого)

29
ответ дан 22 November 2019 в 22:00
поделиться

Что вы хотите делать с файлом? Только запись в него или и чтение, и запись?

'w', 'a' разрешат запись и создадут файл, если он не существует.

Если вам нужно прочитать из файла, файл должен существовать до его открытия. Вы можете проверить его существование перед открытием или использовать try/except.

6
ответ дан 22 November 2019 в 22:00
поделиться
Другие вопросы по тегам:

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