Форум сайта python.su
0
Добрый день.
Необходимо открыть бинарный файл для чтения, а если такого нет, то создать его и записать в него информацию. Я понимаю, что можно сделать конструкцию вида:
try: f = open('test.bin', 'rb') a = pickle.load(...) except: f = open('test.bin','wb') pickle.dump(...)
f = open('test.ttt', 'какой-то режим') try: a = pickle.load(...) except: pickle.dump(...)
Офлайн
.
Отредактировано J.R. (Янв. 27, 2016 08:33:49)
Офлайн
0
J.R.
А какая разница? Что после этого вы напишете?
if os.path.exists('hello.py'): f = open('hello.py', 'rb') a = pickle.load(...) else: f = open('hello.py','wb') pickle.dump(...)
Офлайн
88
f.seek(…
Офлайн
0
Shaman
т.е. такого режима нет?
Офлайн
88
Есть, но начальное положение курсора платформозависимо.
Офлайн
0
Shaman
Ясно. Спасибо.
Офлайн
253
domogarovПотому что странный вроде режим. Если вы в этот момент можете записать файл то зачем его читать?
т.е. такого режима нет?
if os.path.exists("some"): with open("some","rb") as f: data=pickle.load(f) # прочитали и тутже закрыли else: data=create_default_data() # писать в этот момент нет никакого смысла - вы и так все легко по умолчанию выставите сами # тут огромная куча кода ..... # и только потом пишем когда получен результат. with open("some","wb") as f: pickle.dump(f,data,2)
Отредактировано doza_and (Ноя. 4, 2015 22:46:48)
Офлайн
857
ShamanЧего платформозависимо?
Есть, но начальное положение курсора платформозависимо.
Офлайн
0
doza_and
Потому что странный вроде режим.
Офлайн