If you want to write the output to a file you can use the stdout-argument of subprocess.call
.
It takes either
None
(the default, stdout is inherited from the parent (your script))
subprocess.PIPE
(allows you to pipe from one command/process to another)
- a file object or a file descriptor (what you want, to have the output written to a file)
You need to open a file with something like open
and pass the object or file descriptor integer to call
:
f = open("blah.txt", "w")
subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], stdout=f)
I'm guessing any valid file-like object would work, like a socket (gasp :)), but I've never tried.
As marcog mentions in the comments you might want to redirect stderr as well, you can redirect this to the same location as stdout with stderr=subprocess.STDOUT
. Any of the above mentioned values works as well, you can redirect to different places.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…