Форум сайта python.su
Доброго времени суток. Есть скрипт, который обрабатывает тысячи слов (считывает по одному из файла). В процессе работы нужно чтоб он в log.txt всегда записывал последнее полученное слово. На мой взгляд каждый раз открывать/записывать/закрывать log.txt - очень затратно в плане времени.
Хочу открыть его в начале работы (fh = open('log.txt','w')), и в конце работы закрыть. Получается что каждый раз нужно записать текущее слово с помощью fh.write(word), при этом затерев уже имеющееся там слово (предыдущее). Можно ли это как-то сделать?
Отредактировано WhiteTiger (Дек. 11, 2012 19:36:41)
Офлайн
fh.seek(0) fh.truncate() fh.write(word)
import timeit word = "word qwer" def open_each_time(): with open('open_each_time.txt', 'w') as f: f.write(word) fp = open('write_once.txt', 'w') def open_once(): fp.seek(0) fp.truncate() fp.write(word) fp.flush() N = 20000 print 'open each time', timeit.timeit(open_each_time, number=N) print 'open once', timeit.timeit(open_once, number=N)
open each time 2.0366631034
open once 0.720287523331
Отредактировано reclosedev (Дек. 11, 2012 21:38:00)
Офлайн
WhiteTigerчто мешает записать только последнее слово один раз ?
Получается что каждый раз нужно записать текущее слово с помощью fh.write(word), при этом затерев уже имеющееся там слово (предыдущее).
Офлайн
Из-за некоторых обстоятельств работа программы может внезапно прерваться. Чтоб после этого не начинать всё заново и нужно хранить где-то последнее слово.
Офлайн
ТС ниасилил try-except ?
Офлайн
Завершаться внезапно работа любого софта может не только из за ИС.
Решение найдено, проблемы больше нет.
reclosedev, спасибо, именно то что нужно!
Отредактировано WhiteTiger (Дек. 13, 2012 21:18:25)
Офлайн