Shi*_*a T 5 python mysql popen
我对 python 很陌生。我想知道,使用时subprocess.Popen需要关闭连接还是子进程自动关闭连接?
process = subprocess.Popen(["mysql", "-uroot", "-ppassword", "database"],
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
process_out, process_err = process.communicate(file("test.sql").read())
print process_out
Run Code Online (Sandbox Code Playgroud)
process是代表子流程的对象。有了它,你可以做你想做的一切,但最后,在处理完所有通信之后,你应该.wait()为它做准备,以免僵尸进程持续太长时间。
只有.wait()在子进程真正从操作系统的视野中消失之后。
如果您自己处理通信,则上述内容有效。但是,如果您的情况允许您使用该.communicate()方法并且您这样做了,则不必调用.wait(),因为它会为您这样做。