Вы должны использовать open
с режимом w+
:
file = open('myfile.dat', 'w+')
>>> import os
>>> if os.path.exists("myfile.dat"):
... f = file("myfile.dat", "r+")
... else:
... f = file("myfile.dat", "w")
r + означает чтение / запись
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
.
Измените «rw» на «w +»
Или используйте «a +» для добавления (без удаления существующего содержимого)
Что вы хотите делать с файлом? Только запись в него или и чтение, и запись?
'w'
, 'a'
разрешат запись и создадут файл, если он не существует.
Если вам нужно прочитать из файла, файл должен существовать до его открытия. Вы можете проверить его существование перед открытием или использовать try/except.