Các tùy chọn cho popen
có thể được sử dụng trong call
args,
bufsize=0,
executable=None,
stdin=None,
stdout=None,
stderr=None,
preexec_fn=None,
close_fds=False,
shell=False,
cwd=None,
env=None,
universal_newlines=False,
startupinfo=None,
creationflags=0
Vậy ...
subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], stdout=myoutput)
Sau đó, bạn có thể làm những gì bạn muốn với myoutput
(mà sẽ cần phải là một tập tin btw).
Ngoài ra, bạn có thể làm điều gì đó gần hơn với đầu ra đường ống như thế này.
dmesg | grep hda
sẽ là:
p1 = Popen(["dmesg"], stdout=PIPE)
p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE)
output = p2.communicate()[0]
Có rất nhiều thông tin đáng yêu, hữu ích trên python manual page.
Vâng, công việc của ổ cắm cũng vậy. – ocodo
tại sao không subprocess.call (["echo", "1", ">>", "t.txt"]) hoạt động? – Goldname
@Goldname bạn cần một trình bao để thực hiện chuyển hướng, vì vậy: 'subprocess.call ([" echo "," 1 "," >> "," t.txt "], shell = True)' nên hoạt động. –