![]() |
| ||
| New to Python, help printing output of system calls 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. |
| ||
| Re: New to Python, help printing output of system calls Try subprocess.Popen stdout redirection to a file or to the web server input. However I would not expose a long running server process via web. I think it would be better to schedule the process and present the output. |
| ||
| Re: New to Python, help printing output of system calls 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 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 child = Popen(...) |
| All times are GMT -4. The time now is 6:58 am. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC