Python » Страница 773
-Программирование на Python
я уже писал выше, демон и основная программа общаются через временные файлы. В твоем случае, например, демон периодически считывает содержимое файла, созданного основной программой, и пока там что-то есть, он работает, как только пустой файл- открывается замок, os.abort итп. И нужно побеспокоиться, чтоб избежать неувязки с одновременным использованием файла основной программой и демоном
-------------
добавлено в 17.33: собственно, простейший замок это while 1 в конце скрипта и в теле цикла считывать файл, задержка ao_sleep какая-то, при условии что файл пуст/отсутствует/итп - break, демон закроется, вместо замка Ao_lock.
f1=open('d:\\1', 'wb+')
f2=open('d:\\1', 'rb+')
f2.write('123')
f1.write('000456')
содержимое файла '123456'
почему? %) как? О_о как с этим дальше жить? О_О
-------------
добавлено в 11.09: f1=open('d:\\1', 'wb+')
f2=open('d:\\1', 'rb+')
f2.write('123')
f1.write('000456')
содержимое файла '123456'
почему? %) как? О_о как с этим дальше жить? О_О
Я недавно с таким столкнулся, тоже хотел, чтобы в файл можно было писать и читать одновременно (dimy44 должен знать, мы о похожем говорили не так давно в комментах к одной записи ;), очень обломало.
open, кстати, принимает ещё доп. параметром уровень буферизации. Я ставил без неё, ноль эффекта, пришлось отложить идею.
дык 1 вроде как это не 1 байт, а построчная буферизация?
-------------
добавлено в 22.58: без буферизации быстрее, от нефиг делать проверил
from time import clock as c
txt = 'abc' * 1000000
f1 = open('d:\\1', 'w+')
f2 = open('d:\\2', 'w+', 0)
t0 = c()
f1.write(txt)
t = c() - t0
print t
t0 = c()
f2.write(txt)
t = c() - t0
print t
f1.close()
f2.close()
>>>
1.234375
0.796875
>>>
- «
- 1
- 2
- --
- 772
- 773
- 774
- --
- 974
- 975
- »

