Процесс представляет собой простой секундомер, поэтому я могу запустить его, остановить и узнать текущее время.< /p>
Код секундомера:
Код: Выделить всё
import argparse
import time
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument('start', type=int, default=0)
start = parser.parse_args().start
while True:
print(start)
start += 1
time.sleep(1)
if __name__ == "__main__":
main()
Код: Выделить всё
import time
import asyncio
class RobotManager:
def __init__(self):
self.cmd = ["python", "stopwatch.py", "10"]
self.robot = None
async def start(self):
self.robot = await asyncio.create_subprocess_exec(
*self.cmd,
stdout=asyncio.subprocess.PIPE,
)
async def stop(self):
if self.robot:
self.robot.terminate()
await self.robot.wait()
async def state(self):
print("communicating...")
stdout, stderr = await self.robot.communicate()
print(stdout, stderr)
async def main():
robot = RobotManager()
await robot.start()
time.sleep(5)
await robot.state()
time.sleep(5)
await robot.stop()
asyncio.run(main())
Я пытался заменить proc.communicate() на proc.stdout.readline(), но ничего не изменилось.
Подробнее здесь: https://stackoverflow.com/questions/782 ... th-process