如何用Python通过subprocess模块执行shell脚本并动态传递参数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1345个文字,预计阅读时间需要6分钟。
最近工作中遇到需要从web端获取配置文件内容,并在shell脚本中动态传入参数执行shell脚本的情况。有多种方法可以实现,最后选择了使用Python标准库中的subprocess模块。
使用subprocess模块可以方便地启动新的进程、连接到它们的输入/输出/错误管道,并获取它们的返回码。以下是使用subprocess模块实现上述需求的步骤:
1. 使用requests库从web端获取配置文件内容。
2.将配置文件内容写入本地文件。
3.使用subprocess模块执行shell脚本,并将配置文件内容作为参数传入。
示例代码如下:
python
import requestsimport subprocess从web端获取配置文件内容url=http://example.com/config.txtresponse=requests.get(url)config_content=response.text
将配置文件内容写入本地文件with open(config.txt, w) as f: f.write(config_content)
执行shell脚本,并将配置文件内容作为参数传入shell_script_path=path/to/your/script.shsubprocess.run([shell_script_path, config.txt])
使用subprocess模块的优点是:
- 可以方便地执行外部程序。- 可以获取外部程序的输出。- 可以将外部程序的输出作为输入传递给其他程序。- 可以设置进程的启动选项,如环境变量、工作目录等。
本文共计1345个文字,预计阅读时间需要6分钟。
最近工作中遇到需要从web端获取配置文件内容,并在shell脚本中动态传入参数执行shell脚本的情况。有多种方法可以实现,最后选择了使用Python标准库中的subprocess模块。
使用subprocess模块可以方便地启动新的进程、连接到它们的输入/输出/错误管道,并获取它们的返回码。以下是使用subprocess模块实现上述需求的步骤:
1. 使用requests库从web端获取配置文件内容。
2.将配置文件内容写入本地文件。
3.使用subprocess模块执行shell脚本,并将配置文件内容作为参数传入。
示例代码如下:
python
import requestsimport subprocess从web端获取配置文件内容url=http://example.com/config.txtresponse=requests.get(url)config_content=response.text
将配置文件内容写入本地文件with open(config.txt, w) as f: f.write(config_content)
执行shell脚本,并将配置文件内容作为参数传入shell_script_path=path/to/your/script.shsubprocess.run([shell_script_path, config.txt])
使用subprocess模块的优点是:
- 可以方便地执行外部程序。- 可以获取外部程序的输出。- 可以将外部程序的输出作为输入传递给其他程序。- 可以设置进程的启动选项,如环境变量、工作目录等。

