асинхронная запись и чтение файла - PullRequest
3 голосов
/ 17 июня 2010

У меня два процесса.

  1. Один из процессов - перенаправление вывода какой-либо команды unix в файл на стороне сервера. Данные всегда добавляются в файл. например,

    find / > tmp.txt
    
  2. Еще один процесс - открытие и чтение того же файла, сохранение его в строку и отправка всей строки клиенту.

Так вот, все это происходит одновременно. Я использую Python.

Любое предложение относительно возможных путей реализации этого сценария. Пожалуйста, объясните с примером кода.

Заранее спасибо.

Tazim.

1 Ответ

1 голос
/ 17 июня 2010

Если вам нужно иметь вывод команды Unix в файле и отображать ее одновременно, вы можете [tee][1] вывести ее на стандартный вывод и прочитать ее оттуда, например:

>>> command_line = '/bin/find / |tee tmp.txt'
>>> args = shlex.split(command_line)
>>> p = subprocess.Popen(args,stdout=subprocess.PIPE)

Оттуда вы можете либо использовать commuicate (), либо напрямую прочитать стандартный вывод из объекта POpen.Посмотрите, как это можно использовать здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...