使用Python打开Shell环境,运行命令并退出环境
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Python打开Shell环境,运行命令并退出环境,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1334字,纯文字阅读大概需要2分钟。
内容图文
![使用Python打开Shell环境,运行命令并退出环境](/upload/InfoBanner/zyjiaocheng/950/695fb2e59b2b41628e18c32a35ea245a.jpg)
我正在尝试使用python自动化过程.如果我只是在终端机中,工作流程如下所示:
user:> . /path/to/env1.sh
user:> python something.py
user:> exit
user:> . /path/to/env2.sh
user:> python something2.py
user:> exit
等更多的步骤.每个env.sh都会生成一个带有大量环境变量以及当前目录中未设置内容的新脚本.我很确定我需要使用子流程,但是我不确定该如何进行.理想情况下,工作流程应为:打开新的外壳->运行一些命令->退出外壳->根据需要重复.
编辑:似乎需要一些澄清.我了解如何使用subprocess.Popen()和subprocess.call()从调用Python脚本的外壳内调用事物.这不是我所需要的.当调用env.sh时,它会设置大量的环境变量和其他一些相关的内容,然后将您放入一个shell中以运行命令.重要的是要注意env.sh不会终止,直到一种类型运行所需的命令后退出.使用subprocess.call(“ ./ env.sh”,shell = True)打开shell并在此处停止.就像输入命令./env.sh一样,只不过当发出退出命令时,其余的python脚本才起作用.所以:
subprocess.call(". /path/to/env.sh", shell = True)
subprocess.call("python something.py", shell = True)
不做我需要做的事情,也不做:
p = subprocess.Popen(". /path/to/env.sh", shell = True)
subprocess.call("python something.py", shell = True)
p.kill()
解决方法:
据我了解,您想运行一个命令,然后将其他命令传递给它:
from subprocess import Popen, PIPE
p = Popen("/path/to/env.sh", stdin=PIPE) # set environment, start new shell
p.communicate("python something.py\nexit") # pass commands to the opened shell
内容总结
以上是互联网集市为您收集整理的使用Python打开Shell环境,运行命令并退出环境全部内容,希望文章能够帮你解决使用Python打开Shell环境,运行命令并退出环境所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。