如何使用Python在shell中运行外部命令并传递环境变量
发布时间:2024-01-18 20:09:17
在Python中,可以使用subprocess模块来运行外部命令并传递环境变量。subprocess模块提供了多个函数来启动新进程、连接到它们的输入/输出流,并获取它们的返回代码。
下面是一个使用subprocess模块运行外部命令并传递环境变量的例子:
import subprocess
# 定义环境变量字典
env_vars = {'PATH': '/usr/local/bin'}
# 运行外部命令
result = subprocess.run(['echo', 'Hello, World!'], env=env_vars, capture_output=True, text=True)
# 获取命令输出
output = result.stdout.strip()
# 打印输出
print(output)
在这个例子中,我们使用了subprocess.run()函数来运行外部命令。该函数接受一个列表参数,列表中包含了命令及其参数。在上面的例子中,我们运行了echo命令并传递了一个字符串参数。
通过env参数,我们将包含环境变量的字典传递给了subprocess.run()函数。在这个例子中,我们将PATH环境变量设置为/usr/local/bin。
使用capture_output=True参数和text=True参数,我们可以捕获命令的输出,并将其作为字符串返回。
最后,我们打印了命令的输出。
以上代码执行后,将会输出以下内容:
Hello, World!
需要注意的是,在某些操作系统上,echo命令可能会返回带有换行符的输出。如果想要获取和处理纯净的输出,可以使用.strip()方法来去除字符串两边的空格和换行符。
通过这个例子,我们可以看到如何使用subprocess模块在Python中运行外部命令并传递环境变量。你可以根据需要修改命令、环境变量和参数,以满足你的具体需求。
