Python 子進程 subprocess.Popen 類使用技項 常見問題
subprocess.Popen 是 Python 開啓 管理子進程的常用類。
其首 args 自變量可為序列或字符串 (注意:有些時候,隻能是字符串)。
若通過 subprocess.Popen 開啓的子進程環境未繼承 (或缺少) 某些路徑, 請修改 sys.path 變量值 (或相關環境變量)。
Python2.7 對非 ASCII 字符集 (如 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 對非 ASCII 字符集 (如 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)
另請參閱:
CPython2.7 subprocess.Popen()不忍直視的Unicode中文路徑Bug 解決辦法
版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。