在Python中读写环境变量?

use*_*632 155 python environment-variables

可能重复:
如何在Python中设置环境变量

我的python脚本调用许多python函数和shell脚本.我想在Python(主调用函数)和所有子进程(包括shell脚本)中设置环境变量以查看环境变量集.

我需要设置一些像这样的环境变量:

DEBUSSY 1
FSDB 1
Run Code Online (Sandbox Code Playgroud)

1是一个数字,而不是一个字符串.另外,如何读取存储在环境变量中的值?(喜欢DEBUSSY/ FSDB在另一个python子脚本中.)

voi*_*hos 301

尝试使用该os模块.

import os

os.environ['DEBUSSY'] = '1'
os.environ['FSDB'] = '1'

# Open child processes via os.system(), popen() or fork() and execv()

someVariable = int(os.environ['DEBUSSY'])
Run Code Online (Sandbox Code Playgroud)

请参阅Python文档os.environ.此外,为了生成子进程,请参阅Python的进程文档.


sar*_*old 36

首先要做的事情:)阅读书籍是解决问题的绝佳方法; 这是创可贴修复与解决问题的长期投资之间的区别.千万不要错过学习的机会.:d

您可以选择将其解释1为数字,但环境变量并不关心.他们只是绕过字符串:

   The argument envp is an array of character pointers to null-
   terminated strings. These strings shall constitute the
   environment for the new process image. The envp array is
   terminated by a null pointer.
Run Code Online (Sandbox Code Playgroud)

(来自environ(3posix).)

您可以使用os.environ类似字典的对象在python中访问环境变量:

>>> import os
>>> os.environ["HOME"]
'/home/sarnold'
>>> os.environ["PATH"]
'/home/sarnold/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
>>> os.environ["PATH"] = os.environ["PATH"] + ":/silly/"
>>> os.environ["PATH"]
'/home/sarnold/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/silly/'
Run Code Online (Sandbox Code Playgroud)

  • 一个人通过做而不是阅读来学习python (3认同)