Два процесса, читающие/пишущие в тот же файл Python

 $_SERVER['REMOTE_ADDR'];

попробуйте этот

17
задан Andreas 9 July 2010 в 09:14
поделиться

4 ответа

test1.py

import os
f = open('txt.txt', 'a', os.O_NONBLOCK)
while 1:
        f.write('asd')
        f.flush()

test2.py

import os
f = open('txt.txt', 'r', os.O_NONBLOCK)
while 1:
    print f.read(3)

У меня это отлично работает.

19
ответ дан 30 November 2019 в 12:26
поделиться

Есть ли причина использовать общий файл? Межпроцессное взаимодействие, вероятно, намного проще, используя сокеты .

8
ответ дан 30 November 2019 в 12:26
поделиться

Еще один отличный способ сделать это - использовать канал

В этом примере создается канал, который возвращает объект чтения и записи. Затем один процесс записывает данные в канал, используя программу записи, а другой читает из нее, используя программу чтения.

Python os.pipe (): https://docs.python.org/3/library/os.html#os.pipe

1
ответ дан 30 November 2019 в 12:26
поделиться

Посмотрите на этот класс Read-Write Lock:

и на эти статьи о блокировке и потоках:

3
ответ дан 30 November 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: