1 Popen
class subprocess.Popen(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)
在脚本状态下stdout=None, stderr=None时运行不会有任何问题,但经过pyInstall打包成exe后,运行时会出现 ”[Error 6] The handle is invalid” 异常,解决方法如下:
脚本原始调用方法:
Import subprocess
p = subprocess.Popen("myapp.exe", stdin=subprocess.PIPE, stdout=None, stderr=None)
p.stdin.write('xxx')
适配pyInstaller的写法:
Import subprocess
p = subprocess.Popen("x.exe", stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write('xxx')
p.stdout.close()
p.stderr.close()