Python 进程与线程管理全解析
1. 替代复杂 Shell 管道的方法
在处理复杂的 Shell 管道时,我们可以使用内置的替代方法。例如,使用pwd模块来替代Subprocess进行一些操作。以下是具体示例:
import pwd pwd.getpwnam('root') # 输出: ('root', '********', 0, 0, 'System Administrator', '/var/root', '/bin/sh') shell = pwd.getpwnam('root')[-1] print(shell) # 输出: '/bin/sh'Subprocess还能同时处理输入、输出以及监听标准错误。以下是一个示例代码:
import subprocess p = subprocess.Popen("tr a-z A-Z", shell=True,stdin=subprocess.PIPE, stdout=subprocess.PIPE) output, error = p.communicate("translatetoupper") print(output)当我们在 IPython 中退出 Vim 时,这段代码将自动运行,输出结果为TRANSLATETOUPPER。