如何在Python中控制流程环境变量?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Python中控制流程环境变量?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1204字,纯文字阅读大概需要2分钟。
内容图文
![如何在Python中控制流程环境变量?](/upload/InfoBanner/zyjiaocheng/817/d3a8f6c5560a4b3a9a93e786d5957a78.jpg)
我正在尝试更改Python执行过程的环境.似乎正确的方法应该是与os.environ进行交互.但是,我以下断言失败了:
import os, subprocess
os.environ['ATESTVARIABLE'] = 'value'
value = subprocess.check_output(['echo', '$ATESTVARIABLE'], shell=True)
assert 'value' in value
我还应该做些什么来改变当前的环境?上面的代码揭示了我对Python的理解有什么缺陷?:)
(请注意,在当前的Python解释器中,os.environ [‘ATESTVARIABLE’]包含期望值.我设置运行一些需要特定环境变量的代码,并且可以启动外部进程.显然,如果我想要控制特定子进程的环境,我使用env关键字.)
解决方法:
查看子进程模块的源代码,这是因为使用shell = True的参数列表将相当于……
/bin/sh -c 'echo' '$ATESTVARIABLE'
……当你想要的是……
/bin/sh -c 'echo $ATESTVARIABLE'
以下为我工作……
import os, subprocess
os.environ['ATESTVARIABLE'] = 'value'
value = subprocess.check_output('echo $ATESTVARIABLE', shell=True)
assert 'value' in value
更新
FWIW,两者的区别在于第一种形式……
/bin/sh -c 'echo' '$ATESTVARIABLE'
…将只调用没有参数的shell的内置echo,并将$0设置为文字字符串’$ATESTVARIABLE’,例如……
$/bin/sh -c 'echo $0'
/bin/sh
$/bin/sh -c 'echo $0' '$ATESTVARIABLE'
$ATESTVARIABLE
……而第二种形式……
/bin/sh -c 'echo $ATESTVARIABLE'
…将使用等于环境变量ATESTVARIABLE值的单个参数调用shell的内置回显.
内容总结
以上是互联网集市为您收集整理的如何在Python中控制流程环境变量?全部内容,希望文章能够帮你解决如何在Python中控制流程环境变量?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。