简体   繁体   中英

store environment as a dictionary to store it as pickle

How can I store the result of

print(os.environ)
environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\401442\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'L-8ZXZFH2', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'DISPLAYLINKCONFIGROOT': 'C:\\Program Files\\DisplayLink Core Software\\8.3.2010.0\\', 'FP_NO_HOST_CHECK': 'NO', 'HOMEDRIVE': 'F:', 'HOMEPATH': '\\', 'HOMESHARE': '\\\\arboned.local\\home\\401442', 'LOCALAPPDATA': 'C:\\Users\\401442\\AppData\\Local', 'LOGONSERVER': '\\\\ANWVMDCP001', 'NUMBER_OF_PROCESSORS': '4', 'OS': 'Windows_NT', 'PATH': 'C:\\ProgramData\\Anaconda3;C:\\ProgramData\\Anaconda3\\Library\\mingw-w64\\bin;C:\\ProgramData\\Anaconda3\\Library\\usr\\bin;C:\\ProgramData\\Anaconda3\\Library\\bin;C:\\ProgramData\\Anaconda3\\Scripts;C:\\ProgramData\\Anaconda3;C:\\ProgramData\\Anaconda3\\Library\\mingw-w64\\bin;C:\\ProgramData\\Anaconda3\\Library\\usr\\bin;C:\\ProgramData\\Anaconda3\\Library\\bin;C:\\ProgramData\\Anaconda3\\Scripts;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\Microsoft SQL Server\\Client SDK\\ODBC\\130\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\140\\DTS\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\Binn\\ManagementStudio\\;C:\\Program Files\\Git\\cmd;C:\\Program Files\\mingw-w64\\x86_64-7.3.0-posix-seh-rt_v5-rev0\\mingw64\\bin', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 78 Stepping 3, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '4e03', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules\\;C:\\Program Files\\Microsoft Application Virtualization\\Client\\;c:\\Program Files\\Microsoft Security Client\\MpProvider\\', 'PUBLIC': 'C:\\Users\\Public', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\401442\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\401442\\AppData\\Local\\Temp', 'UATDATA': 'C:\\WINDOWS\\CCM\\UATData\\D9F8C395-CAB8-491d-B8AC-179A1FE1BE77', 'USERDNSDOMAIN': 'ARBONED.LOCAL', 'USERDOMAIN': 'ARBONED', 'USERDOMAIN_ROAMINGPROFILE': 'ARBONED', 'USERNAME': '401442', 'USERPROFILE': 'C:\\Users\\401442', 'WINDIR': 'C:\\WINDOWS', 'CONDA_PREFIX': 'C:\\ProgramData\\Anaconda3', 'LANG': 'en', 'SPYDER_ARGS': '[]', 'QT_SCALE_FACTOR': '', 'QT_SCREEN_SCALE_FACTORS': '', 'QT_API': 'pyqt5', 'EXTERNAL_INTERPRETER': 'False', 'UMR_ENABLED': 'True', 'UMR_VERBOSE': 'True', 'UMR_NAMELIST': '', 'JPY_INTERRUPT_EVENT': '3776', 'IPY_INTERRUPT_EVENT': '3776', 'JPY_PARENT_PID': '3948', 'SPYDER_PARENT_DIR': 'C:\\ProgramData\\Anaconda3\\lib\\site-packages', 'TERM': 'xterm-color', 'CLICOLOR': '1', 'PAGER': 'cat', 'GIT_PAGER': 'cat', 'MPLBACKEND': 'module://ipykernel.pylab.backend_inline', '_COMMENT_MODEL_OPT': '["eval_metric can be auc (roc_auc in sklearn implementation) or logloss (neg_log_loss in sklearn implementation, negative because sklearn maximize only) or rmse (neg_mean_squared_error in sklearn implementation)"]', 'USE_TOYDATASET': 'true', 'PLOT_RESULTS': 'true'}]

in a python dictionary?

Simply "cast" it into a dict.

dict(os.environ)

...

{'ANSIBLE_NOCOWS': '1', ...

In Python 2:

os.environ is an instance of a class that inherits from UserDict.IterableUserDict .

In Python 3:

The class of os.environ inherits from collections.abc.MutableMapping .

So for all intents and purposes, and with respect to duck typing, os.environ already is a dictionary.

my_environ = os.environ

assigns a new name to it, if you'd like that. You use it just like you are using a plain old dict . Demo for my machine:

>>> my_environ = os.environ
>>> my_environ['SESSION']
'Lubuntu'
>>> list(my_environ.items())[:2]
[('XDG_CURRENT_DESKTOP', 'LXDE'), ('SESSION', 'Lubuntu')]

os.environ is already a dictionary , it just has a few additional accessors on top for dealing with case sensitivity and things like that. You can easily turn it into a dict with:

import os

environ_dict = dict(os.environ)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM