Найти - Пользователи
Полная версия: Стереть содержимое файла открытого open()
Начало » Python для новичков » Стереть содержимое файла открытого open()
1
WhiteTiger
Доброго времени суток. Есть скрипт, который обрабатывает тысячи слов (считывает по одному из файла). В процессе работы нужно чтоб он в log.txt всегда записывал последнее полученное слово. На мой взгляд каждый раз открывать/записывать/закрывать log.txt - очень затратно в плане времени.
Хочу открыть его в начале работы (fh = open('log.txt','w')), и в конце работы закрыть. Получается что каждый раз нужно записать текущее слово с помощью fh.write(word), при этом затерев уже имеющееся там слово (предыдущее). Можно ли это как-то сделать?
reclosedev
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
py.user.next
WhiteTiger
Получается что каждый раз нужно записать текущее слово с помощью fh.write(word), при этом затерев уже имеющееся там слово (предыдущее).
что мешает записать только последнее слово один раз ?
WhiteTiger
Из-за некоторых обстоятельств работа программы может внезапно прерваться. Чтоб после этого не начинать всё заново и нужно хранить где-то последнее слово.
sp3
ТС ниасилил try-except ?
WhiteTiger
Завершаться внезапно работа любого софта может не только из за ИС.
Решение найдено, проблемы больше нет.
reclosedev, спасибо, именно то что нужно!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB