在路边看到一个感兴趣的事物,只有走近才能了解它的全貌,并进行下一步的了解。在python中我们是为了找寻或者执行某种指令,需要访问某个特定的环境。对于python3 os的内容分享这两天一直在进行,今天小编同样要为大家讲解python3 os中,我们可以用来访问环境的办法。
先来了解下os.environ是什么?
简单的说就是可以根据一个字符串映射到系统环境的一个对象,在首次导入os模块的时候已经捕获了系统的映射,可以通过os.environ进行更改。
问题:
用python写了一个安装脚本,安装完了后想永久配置环境,我选择修改/etc/profile,然后修改完了后执行os.system(“source /etc/profile”),发现并没有起作用。
修改/etc/profile 和执行source都是写在python脚本里的,请问有什么办法能让source指令执行?
def config_sys_path(path): if (check_is_config_path(path)): print path + " has already been config" return f = codecs.open(env_file_path, 'a') env_path = "export PATH=$PATH:" + path f.write("\n" + env_path) if (path.find("GraphicsMagick") >= 0): cpu_num = cpu_count() f.write("\nexport OMP_NUM_THREADS=" + str(cpu_num)) f.close() run_shell("source " + env_file_path)
解决:
import os os.environ['SOME_ENV_NAME'] = 'SOME_VALUE' os.system('env')
env 是一个外部命令,作用是打印这个进程的所有的环境变量。os.environ 是 python 程序中用来访问自己的环境变量的方式。当python中向os.environ中添加一个新的变量时,python后续启动的子进程也会继承这个变量。所以,上面的代码,env命令打印的输出中,可以找到SOME_ENV_NAME。
看完文章小伙伴们会发现,我们是用os.environ解决source指令指令的问题,这也是不同知识一起使用的一种表现。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试