Python 子进程 subprocess.Popen 类使用技项 常见问题


subprocess.Popen 是 Python 开启 管理子进程的常用类。

其首 args 自变量可为序列或字符串 (注意:有些时候,只能是字符串)。

若通过 subprocess.Popen 开启的子进程环境未继承 (或缺少) 某些路径, 请修改 sys.path 变量值 (或相关环境变量)。

Python2.7


Python2.7 对非 ASCII Character Set (如 GB18030) 的支持并不完整。

因此,使用 subprocess.Popen 时,不能包含非 ASCII 字符。 且 Python2.7 已于 2020 年 01 月停止维护,此问题不会得到修补。

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)

Python3.x


Python3.x 对非 ASCII Character Set (如 GB18030) 的支持完美。

因此,使用 subprocess.Popen 时,可包含非 ASCII 字符。

subprocess.Popen(args , bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=(), *, encoding=None, errors=None)

See also:

CPython2.7 subprocess.Popen() subprocess.Popen() can not bear to look straight Unicode Chinese path Bug-Solution

Copyright Notice: This article is exclusive original manuscripts, copyrighted by Happy Digits Software , shall not be reproduced without permission.