Interact with standard input/output of another process

后端 未结 1 557
无人及你
无人及你 2021-01-06 00:52

I have an executable example.exe. This executable\'s behaviour is as follows:

1.Waits for input from user
2.Performs some operations, based on i         


        
相关标签:
1条回答
  • 2021-01-06 01:13
    from subprocess import Popen, PIPE
    
    process = Popen([r'path/to/process', 'arg1', 'arg2', 'arg3'], stdin=PIPE, stdout=PIPE)
    
    to_program = "something to send to the program's stdin"
    while process.poll() == None:  # While not terminated
        process.stdin.write(to_program)
    
        from_program = process.stdout.readline()  # Modify as needed to read custom amount of output
        if from_program == "something":  # send something new based on stdout
           to_program = "new thing to send to program"
        else:
           to_program = "other new thing to send to program"
    
    print("Process exited with code {}".format(process.poll()))
    
    0 讨论(0)
提交回复
热议问题