New to Python, help printing output of system calls
Please support our Python advertiser: Programming Forums
![]() |
•
•
Posts: 1
Reputation:
Solved Threads: 0
I'm new to Python and not anywhere near a competent programmer.
Anyway, if someone could help me get over this hump, I'd appreciate it.
I need to write a Python script that calls commands from the OS that may have lengthy output. Let's say I want to see the results of an rsync between two directories. I'd like to print the output in real-time to a web page.
My web page calls the Python script. No problem.
My Python script does a system call to rsync. No problem.
Here's were I get puzzled. No output from the rsynch makes it to the screen. It runs, but I can't see that anything is happening until the rsync is finished.
What would be the correct technique for doing this kind of thing? Basically I want to call system functions and have their status output appear just as I would have seen it from the command line.
Thanks for any tips.
Anyway, if someone could help me get over this hump, I'd appreciate it.
I need to write a Python script that calls commands from the OS that may have lengthy output. Let's say I want to see the results of an rsync between two directories. I'd like to print the output in real-time to a web page.
My web page calls the Python script. No problem.
My Python script does a system call to rsync. No problem.
Here's were I get puzzled. No output from the rsynch makes it to the screen. It runs, but I can't see that anything is happening until the rsync is finished.
What would be the correct technique for doing this kind of thing? Basically I want to call system functions and have their status output appear just as I would have seen it from the command line.
Thanks for any tips.
It would be easier if we could see the python line which runs the system call.
A possible solution to your problem is to start the system call without waiting for it's completion, using
A possible solution to your problem is to start the system call without waiting for it's completion, using
subprocess.Popen (see http://docs.python.org/lib/node533.html). Then, once you have a child process running, print it's output with a loop, like this python Syntax (Toggle Plain Text)
child = Popen(...) for line in child.stdout: print line
![]() |
Other Threads in the Python Forum
- Previous Thread: Opening pipelines with python ?
- Next Thread: Need Help With a Function....
•
•
•
•
Views: 1059 | Replies: 2 | Currently Viewing: 1 (0 members and 1 guests)





Linear Mode