Python os.environ, os.putenv, /usr/bin/envPython

Программы на Python
Ответить
Anonymous
 Python os.environ, os.putenv, /usr/bin/env

Сообщение Anonymous »

Я хочу, чтобы os.system('env') не содержал какой-либо конкретной переменной myname
которая экспортируется в ~/.bashrc как экспорт myname=csj

Поэтому я написал ниже код Python:

Код: Выделить всё

import os

def print_all():
print "os.environ['myname']=%s" % os.environ.get('myname')
print "os.getenv('myname')=%s" % os.getenv('myname')
os.system('env | grep myname')
print

def delete_myname():
if 'myname' in os.environ: os.environ.pop('myname')
if os.getenv('myname'): os.unsetenv('myname')

print_all()

os.putenv('myname', 'csj2')
print "---------------------"
delete_myname()
print_all()

os.putenv('myname', 'csj3')
print "---------------------"
delete_myname()
print_all()
Я думаю, проверьте как os.environ['myname'], так и os.getenv('myname')
а затем удалите их, если они существуют,
можете гарантировать, что os.system('env | grep myname') ничего не получит.

Однако результат:

Код: Выделить всё

os.environ['myname']=csj
os.getenv('myname')=csj
myname=csj

---------------------
os.environ['myname']=None
os.getenv('myname')=None

---------------------
os.environ['myname']=None
os.getenv('myname')=None
myname=csj3
Я не понимаю, почему у меня все еще есть csj3 в os.system('env | grep myname')?

Подробнее здесь: https://stackoverflow.com/questions/177 ... sr-bin-env
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»