Search code examples
python-3.xsubprocess

subprocess output to stdout and to PIPE


I am using the subprocess module like that:

ping = subprocess.Popen('fping.exe 192.168.2.3 196.65.58.69', stdout=PIPE)
output = ping.stdout.readlines()

I am need the output list in order to process it later at the program, but it seems since the stdout is directed to PIPE it isn't output the results to the console. I would like to get both the console output (as it being executed) and the output list.

How can i do that ?

I have done a search, and got an answer here, but i am unable to implement it.

I am using Python 3.x on Windows env.

Thanks.


Solution

  • I have found a way to do that here is it:

    for line in os.popen("Fping x.x.x.x x.x.x.x -l"):
        ipList.append(line)
        print(line)
    

    That way, i am able to get the results from the Fping program into the list, and to print it to the screen while it is executing, since the for loop with the os.popen aren't wait for the program to finish, but always looping at every line from the program.