مثال 53 پایتون – برنامه ای به پایتون بنویسید که به متغیرهای محیطی دسترسی پیدا کند
کد برنامه
1 2 3 4 5 6 7 8 9 10 |
import os # دسترسی به تمامی متغیرهای محیطی print('====================================') print(os.environ) print('====================================') # دسترسی به یک متغیر خاص محیطی print(os.environ['HOME']) print('====================================') print(os.environ['PATH']) print('====================================') |
خروجی کد
1 2 3 4 5 6 7 |
==================================== environ({'SHELL': '/bin/bash', 'SESSION_MANAGER': 'local/alibakhshi-System-Product-Name:@/tmp/.ICE-unix/3493,unix/alibakhshi-System-Product-Name:/tmp/.ICE-unix/3493', 'QT_ACCESSIBILITY': '1', 'COLORTERM': 'truecolor', 'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu:/etc/xdg', 'SSH_AGENT_LAUNCHER': 'gnome-keyring', 'XDG_MENU_PREFIX': 'gnome-', 'TERM_PROGRAM_VERSION': '1.83.0', 'XDG_CONFIG_DIRS_VSCODE_SNAP_ORIG': '/etc/xdg/xdg-ubuntu:/etc/xdg', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'GDK_BACKEND_VSCODE_SNAP_ORIG': '', 'HADOOP_OPTS': '-Djava.library.path=/home/alibakhshi/hadoop/lib/native', 'PYSPARK_DRIVER_PYTHON': 'python3', 'LC_ADDRESS': 'az_IR', 'JAVA_HOME': '/usr/lib/jvm/java-11-openjdk-amd64', 'GIO_MODULE_DIR_VSCODE_SNAP_ORIG': '', 'GNOME_SHELL_SESSION_MODE': 'ubuntu', 'LC_NAME': 'az_IR', 'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh', 'HADOOP_INSTALL': '/home/alibakhshi/hadoop', 'FABRIC_CFG_PATH': '/home/alibakhshi/fabric-samples/config/', 'XMODIFIERS': '@im=ibus', 'DESKTOP_SESSION': 'ubuntu', 'LC_MONETARY': 'az_IR', 'BAMF_DESKTOP_FILE_HINT': '/var/lib/snapd/desktop/applications/code_code.desktop', 'GTK_MODULES': 'gail:atk-bridge', 'PWD': '/home/alibakhshi/PycharmProjects/pythonProject6', 'GSETTINGS_SCHEMA_DIR': '/home/alibakhshi/snap/code/142/.local/share/glib-2.0/schemas', 'XDG_SESSION_DESKTOP': 'ubuntu', 'LOGNAME': 'alibakhshi', 'GTK_EXE_PREFIX': '/snap/code/142/usr', 'XDG_SESSION_TYPE': 'x11', 'GPG_AGENT_INFO': '/run/user/1000/gnupg/S.gpg-agent:0:1', 'SYSTEMD_EXEC_PID': '3512', 'XAUTHORITY': '/run/user/1000/gdm/Xauthority', 'VSCODE_GIT_ASKPASS_NODE': '/snap/code/142/usr/share/code/code', 'GJS_DEBUG_TOPICS': 'JS ERROR;JS LOG', 'WINDOWPATH': '2', 'HOME': '/home/alibakhshi', 'USERNAME': 'alibakhshi', 'LC_PAPER': 'az_IR', 'LANG': 'en_US.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'XDG_CURRENT_DESKTOP': 'Unity', 'HADOOP_MAPRED_HOME': '/home/alibakhshi/hadoop', 'GLEAMVIZ_INSTALLDIR': '/home/alibakhshi/GLEAMviz', 'GIT_ASKPASS': '/snap/code/142/usr/share/code/resources/app/extensions/git/dist/askpass.sh', 'INVOCATION_ID': '9c7999137b3c426f9fe279a46b5263bc', 'MANAGERPID': '3112', 'GOROOT': '/usr/local/go', 'HADOOP_COMMON_HOME': '/home/alibakhshi/hadoop', 'DOTNET_BUNDLE_EXTRACT_BASE_DIR': '/home/alibakhshi/.cache/dotnet_bundle_extract', 'CHROME_DESKTOP': 'code-url-handler.desktop', 'GJS_DEBUG_OUTPUT': 'stderr', 'VSCODE_GIT_ASKPASS_EXTRA_ARGS': '--ms-enable-electron-run-as-node', 'PYSPARK_PYTHON': 'python3', 'GSETTINGS_SCHEMA_DIR_VSCODE_SNAP_ORIG': '', 'GTK_IM_MODULE_FILE_VSCODE_SNAP_ORIG': '', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', 'LC_IDENTIFICATION': 'az_IR', 'HADOOP_HOME': '/home/alibakhshi/hadoop', 'GTK_PATH': '/snap/code/142/usr/lib/x86_64-linux-gnu/gtk-3.0', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'alibakhshi', 'HADOOP_HDFS_HOME': '/home/alibakhshi/hadoop', 'GTK_PATH_VSCODE_SNAP_ORIG': '', 'VSCODE_GIT_IPC_HANDLE': '/run/user/1000/vscode-git-4c6a797a43.sock', 'DISPLAY': ':1', 'SHLVL': '1', 'LOCPATH': '/snap/code/142/usr/lib/locale', 'LC_TELEPHONE': 'az_IR', 'SPARK_HOME': '/opt/spark', 'QT_IM_MODULE': 'ibus', 'LC_MEASUREMENT': 'az_IR', 'GTK_EXE_PREFIX_VSCODE_SNAP_ORIG': '', 'XDG_RUNTIME_DIR': '/run/user/1000', 'XDG_DATA_DIRS_VSCODE_SNAP_ORIG': '/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop', 'LC_TIME': 'az_IR', 'HADOOP_COMMON_LIB_NATIVE_DIR': '/home/alibakhshi/hadoop/lib/native', 'GLEAMVIZ_ROOT': '/home/alibakhshi/GLEAMviz-data', 'VSCODE_GIT_ASKPASS_MAIN': '/snap/code/142/usr/share/code/resources/app/extensions/git/dist/askpass-main.js', 'JOURNAL_STREAM': '8:36154', 'XDG_DATA_DIRS': '/home/alibakhshi/snap/code/142/.local/share:/home/alibakhshi/snap/code/142:/snap/code/142/usr/share:/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop', 'GDK_BACKEND': 'x11', 'PATH': 'home/alibakhshi/fabric-samples/bin:/home/alibakhshi/.local/bin:home/alibakhshi/fabric-samples/bin:/home/alibakhshi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/alibakhshi/.dotnet/tools:/opt/spark/bin:/opt/spark/sbin:/home/alibakhshi/hadoop/sbin:/home/alibakhshi/hadoop/bin:/opt/spark/bin:/opt/spark/sbin:/usr/local/go/bin:/opt/spark/bin:/opt/spark/sbin:/home/alibakhshi/hadoop/sbin:/home/alibakhshi/hadoop/bin:/opt/spark/bin:/opt/spark/sbin:/usr/local/go/bin', 'GDMSESSION': 'ubuntu', 'HADOOP_YARN_HOME': '/home/alibakhshi/hadoop', 'ORIGINAL_XDG_CURRENT_DESKTOP': 'ubuntu:GNOME', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1000/bus', 'GTK_IM_MODULE_FILE': '/home/alibakhshi/snap/code/common/.cache/immodules/immodules.cache', 'LOCPATH_VSCODE_SNAP_ORIG': '', 'GIO_MODULE_DIR': '/home/alibakhshi/snap/code/common/.cache/gio-modules', 'GIO_LAUNCHED_DESKTOP_FILE_PID': '22504', 'GIO_LAUNCHED_DESKTOP_FILE': '/var/lib/snapd/desktop/applications/code_code.desktop', 'LC_NUMERIC': 'az_IR', 'TERM_PROGRAM': 'vscode', '_': '/usr/bin/env', 'OLDPWD': '/home/alibakhshi/PycharmProjects/pythonProject6', 'PYTHONIOENCODING': 'UTF-8', 'PYTHONUNBUFFERED': '1'}) ==================================== /home/alibakhshi ==================================== home/alibakhshi/fabric-samples/bin:/home/alibakhshi/.local/bin:home/alibakhshi/fabric-samples/bin:/home/alibakhshi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/alibakhshi/.dotnet/tools:/opt/spark/bin:/opt/spark/sbin:/home/alibakhshi/hadoop/sbin:/home/alibakhshi/hadoop/bin:/opt/spark/bin:/opt/spark/sbin:/usr/local/go/bin:/opt/spark/bin:/opt/spark/sbin:/home/alibakhshi/hadoop/sbin:/home/alibakhshi/hadoop/bin:/opt/spark/bin:/opt/spark/sbin:/usr/local/go/bin ==================================== |
توضیح کد
در این کد، از ماژول os
استفاده شده تا اطلاعات مربوط به متغیرهای محیطی سیستم عامل را دریافت کند. کارهای انجام شده در این کد به شرح زیر است:
- ابتدا با استفاده از
print('====================================')
یک خط از “=” به عنوان جداکننده نمایش داده میشود. - سپس با دستور
os.environ
تمامی متغیرهای محیطی سیستم عامل به همراه مقادیرشان در یک دیکشنری به نامos.environ
ذخیره میشوند. - با استفاده از
print(os.environ)
، محتوای این دیکشنری که شامل همه متغیرهای محیطی است، نمایش داده میشود. - سپس با دستور
os.environ['HOME']
به مقدار متغیر محیطی HOME دسترسی پیدا میکنیم و مقدار آن را نمایش میدهیم. HOME معمولاً به دایرکتوری خانه کاربر در سیستم اشاره دارد. - با دستور
os.environ['PATH']
نیز به مقدار متغیر محیطی PATH دسترسی پیدا میکنیم و مقدار آن را نمایش میدهیم. این متغیر معمولاً مسیرهایی که سیستم برای جستجوی اجراپذیرها (executables) استفاده میکند را شامل میشود. - آخرسر با دستور
print('====================================')
خط دیگری از “=” به عنوان جداکننده نمایش می دهد.
در نتیجه، این کد اطلاعات محیطی سیستم عامل را نمایش میدهد، از جمله تمامی متغیرهای محیطی و مقادیر آنها. همچنین به دست آوردن مقدار متغیرهای خاص محیطی از جمله HOME و PATH نیز در این کد گنجانده شده است.
کد راه حل دوم
1 2 3 4 5 6 |
import os for data in os.environ: print(data) print('.'*10) print(os.environ[data]) print('='*35) |
خروجی کد (نتایج برای شما متفاوت خواهند بود)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 |
SHELL .......... /bin/bash =================================== SESSION_MANAGER .......... local/alibakhshi-System-Product-Name:@/tmp/.ICE-unix/3498,unix/alibakhshi-System-Product-Name:/tmp/.ICE-unix/3498 =================================== QT_ACCESSIBILITY .......... 1 =================================== COLORTERM .......... truecolor =================================== XDG_CONFIG_DIRS .......... /etc/xdg/xdg-ubuntu:/etc/xdg =================================== SSH_AGENT_LAUNCHER .......... gnome-keyring =================================== XDG_MENU_PREFIX .......... gnome- =================================== TERM_PROGRAM_VERSION .......... 1.83.1 =================================== XDG_CONFIG_DIRS_VSCODE_SNAP_ORIG .......... /etc/xdg/xdg-ubuntu:/etc/xdg =================================== GNOME_DESKTOP_SESSION_ID .......... this-is-deprecated =================================== GDK_BACKEND_VSCODE_SNAP_ORIG .......... =================================== HADOOP_OPTS .......... -Djava.library.path=/home/alibakhshi/hadoop/lib/native =================================== PYSPARK_DRIVER_PYTHON .......... python3 =================================== LC_ADDRESS .......... az_IR =================================== JAVA_HOME .......... /usr/lib/jvm/java-11-openjdk-amd64 =================================== GIO_MODULE_DIR_VSCODE_SNAP_ORIG .......... =================================== GNOME_SHELL_SESSION_MODE .......... ubuntu =================================== LC_NAME .......... az_IR =================================== SSH_AUTH_SOCK .......... /run/user/1000/keyring/ssh =================================== HADOOP_INSTALL .......... /home/alibakhshi/hadoop =================================== FABRIC_CFG_PATH .......... /home/alibakhshi/fabric-samples/config/ =================================== XMODIFIERS .......... @im=ibus =================================== DESKTOP_SESSION .......... ubuntu =================================== LC_MONETARY .......... az_IR =================================== BAMF_DESKTOP_FILE_HINT .......... /var/lib/snapd/desktop/applications/code_code.desktop =================================== GTK_MODULES .......... gail:atk-bridge =================================== PWD .......... /home/alibakhshi/PycharmProjects/pythonProject6 =================================== GSETTINGS_SCHEMA_DIR .......... /home/alibakhshi/snap/code/143/.local/share/glib-2.0/schemas =================================== XDG_SESSION_DESKTOP .......... ubuntu =================================== LOGNAME .......... alibakhshi =================================== GTK_EXE_PREFIX .......... /snap/code/143/usr =================================== XDG_SESSION_TYPE .......... x11 =================================== GPG_AGENT_INFO .......... /run/user/1000/gnupg/S.gpg-agent:0:1 =================================== SYSTEMD_EXEC_PID .......... 3517 =================================== XAUTHORITY .......... /run/user/1000/gdm/Xauthority =================================== VSCODE_GIT_ASKPASS_NODE .......... /snap/code/143/usr/share/code/code =================================== GJS_DEBUG_TOPICS .......... JS ERROR;JS LOG =================================== WINDOWPATH .......... 2 =================================== HOME .......... /home/alibakhshi =================================== USERNAME .......... alibakhshi =================================== LC_PAPER .......... az_IR =================================== LANG .......... en_US.UTF-8 =================================== LS_COLORS .......... rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: =================================== XDG_CURRENT_DESKTOP .......... Unity =================================== HADOOP_MAPRED_HOME .......... /home/alibakhshi/hadoop =================================== GLEAMVIZ_INSTALLDIR .......... /home/alibakhshi/GLEAMviz =================================== GIT_ASKPASS .......... /snap/code/143/usr/share/code/resources/app/extensions/git/dist/askpass.sh =================================== INVOCATION_ID .......... cc553fac6e6048e6ab4aa746cb2d72e5 =================================== MANAGERPID .......... 3128 =================================== GOROOT .......... /usr/local/go =================================== HADOOP_COMMON_HOME .......... /home/alibakhshi/hadoop =================================== DOTNET_BUNDLE_EXTRACT_BASE_DIR .......... /home/alibakhshi/.cache/dotnet_bundle_extract =================================== CHROME_DESKTOP .......... code-url-handler.desktop =================================== GJS_DEBUG_OUTPUT .......... stderr =================================== VSCODE_GIT_ASKPASS_EXTRA_ARGS .......... --ms-enable-electron-run-as-node =================================== PYSPARK_PYTHON .......... python3 =================================== GSETTINGS_SCHEMA_DIR_VSCODE_SNAP_ORIG .......... =================================== GTK_IM_MODULE_FILE_VSCODE_SNAP_ORIG .......... =================================== LESSCLOSE .......... /usr/bin/lesspipe %s %s =================================== XDG_SESSION_CLASS .......... user =================================== TERM .......... xterm-256color =================================== LC_IDENTIFICATION .......... az_IR =================================== HADOOP_HOME .......... /home/alibakhshi/hadoop =================================== GTK_PATH .......... /snap/code/143/usr/lib/x86_64-linux-gnu/gtk-3.0 =================================== LESSOPEN .......... | /usr/bin/lesspipe %s =================================== USER .......... alibakhshi =================================== HADOOP_HDFS_HOME .......... /home/alibakhshi/hadoop =================================== GTK_PATH_VSCODE_SNAP_ORIG .......... =================================== VSCODE_GIT_IPC_HANDLE .......... /run/user/1000/vscode-git-4c6a797a43.sock =================================== DISPLAY .......... :1 =================================== SHLVL .......... 1 =================================== LOCPATH .......... /snap/code/143/usr/lib/locale =================================== LC_TELEPHONE .......... az_IR =================================== SPARK_HOME .......... /opt/spark =================================== QT_IM_MODULE .......... ibus =================================== LC_MEASUREMENT .......... az_IR =================================== GTK_EXE_PREFIX_VSCODE_SNAP_ORIG .......... =================================== XDG_RUNTIME_DIR .......... /run/user/1000 =================================== XDG_DATA_DIRS_VSCODE_SNAP_ORIG .......... /usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop =================================== LC_TIME .......... az_IR =================================== HADOOP_COMMON_LIB_NATIVE_DIR .......... /home/alibakhshi/hadoop/lib/native =================================== GLEAMVIZ_ROOT .......... /home/alibakhshi/GLEAMviz-data =================================== VSCODE_GIT_ASKPASS_MAIN .......... /snap/code/143/usr/share/code/resources/app/extensions/git/dist/askpass-main.js =================================== JOURNAL_STREAM .......... 8:36588 =================================== XDG_DATA_DIRS .......... /home/alibakhshi/snap/code/143/.local/share:/home/alibakhshi/snap/code/143:/snap/code/143/usr/share:/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop =================================== GDK_BACKEND .......... x11 =================================== PATH .......... home/alibakhshi/fabric-samples/bin:/home/alibakhshi/.local/bin:home/alibakhshi/fabric-samples/bin:/home/alibakhshi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/alibakhshi/.dotnet/tools:/opt/spark/bin:/opt/spark/sbin:/home/alibakhshi/hadoop/sbin:/home/alibakhshi/hadoop/bin:/opt/spark/bin:/opt/spark/sbin:/usr/local/go/bin:/opt/spark/bin:/opt/spark/sbin:/home/alibakhshi/hadoop/sbin:/home/alibakhshi/hadoop/bin:/opt/spark/bin:/opt/spark/sbin:/usr/local/go/bin =================================== GDMSESSION .......... ubuntu =================================== HADOOP_YARN_HOME .......... /home/alibakhshi/hadoop =================================== ORIGINAL_XDG_CURRENT_DESKTOP .......... ubuntu:GNOME =================================== DBUS_SESSION_BUS_ADDRESS .......... unix:path=/run/user/1000/bus =================================== GTK_IM_MODULE_FILE .......... /home/alibakhshi/snap/code/common/.cache/immodules/immodules.cache =================================== LOCPATH_VSCODE_SNAP_ORIG .......... =================================== GIO_MODULE_DIR .......... /home/alibakhshi/snap/code/common/.cache/gio-modules =================================== GIO_LAUNCHED_DESKTOP_FILE_PID .......... 69970 =================================== GIO_LAUNCHED_DESKTOP_FILE .......... /var/lib/snapd/desktop/applications/code_code.desktop =================================== LC_NUMERIC .......... az_IR =================================== TERM_PROGRAM .......... vscode =================================== _ .......... /usr/bin/env =================================== OLDPWD .......... /home/alibakhshi/PycharmProjects/pythonProject6 =================================== PYTHONIOENCODING .......... UTF-8 =================================== PYTHONUNBUFFERED .......... 1 =================================== |
توضیح کد راه حل دوم
در این کد، از ماژول os
برای دسترسی به متغیرهای محیطی سیستم استفاده شده است. کارهای انجام شده در این کد به شرح زیر است:
- ابتدا یک حلقه
for
شروع میشود، که برای هر متغیر محیطی درos.environ
اجرا میشود.os.environ
یک دیکشنری است که تمامی متغیرهای محیطی سیستم و مقادیرشان را در خود نگه میدارد. - در هر مرحله از حلقه، مقدار متغیر محیطی کنونی در
data
ذخیره میشود. - با دستور
print(data)
نام متغیر محیطی کنونی نمایش داده میشود. - با دستور
print('.'*10)
خط 10 نقطه (……….) به عنوان جداکننده نمایش داده میشود. - با دستور
print(os.environ[data])
مقدار متغیر محیطی کنونی نمایش داده میشود. - با دستور
print('='*35)
خط 35 علامت تساوی (===================================) به عنوان جداکننده متغیرهای محیطی مختلف نمایش داده میشود.
در نتیجه، این کد تمامی متغیرهای محیطی سیستم عامل و مقادیرشان را نمایش میدهد و بین هر متغیر و مقدارش یک جداکننده ایجاد میکند تا خروجی خواناتر باشد.
کد راه حل سوم
1 2 3 |
import os for variable, value in os.environ.items(): print('{}: {}'.format(variable, value)) |
خروجی کد راه حل سوم (نتایج برای شما متفاوت خواهند بود)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
SHELL: /bin/bash SESSION_MANAGER: local/alibakhshi-System-Product-Name:@/tmp/.ICE-unix/3588,unix/alibakhshi-System-Product-Name:/tmp/.ICE-unix/3588 QT_ACCESSIBILITY: 1 COLORTERM: truecolor XDG_CONFIG_DIRS: /etc/xdg/xdg-ubuntu:/etc/xdg SSH_AGENT_LAUNCHER: gnome-keyring XDG_MENU_PREFIX: gnome- TERM_PROGRAM_VERSION: 1.83.1 XDG_CONFIG_DIRS_VSCODE_SNAP_ORIG: /etc/xdg/xdg-ubuntu:/etc/xdg GNOME_DESKTOP_SESSION_ID: this-is-deprecated GDK_BACKEND_VSCODE_SNAP_ORIG: HADOOP_OPTS: -Djava.library.path=/home/alibakhshi/hadoop/lib/native PYSPARK_DRIVER_PYTHON: python3 LC_ADDRESS: az_IR JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64 GIO_MODULE_DIR_VSCODE_SNAP_ORIG: GNOME_SHELL_SESSION_MODE: ubuntu LC_NAME: az_IR SSH_AUTH_SOCK: /run/user/1000/keyring/ssh HADOOP_INSTALL: /home/alibakhshi/hadoop FABRIC_CFG_PATH: /home/alibakhshi/fabric-samples/config/ XMODIFIERS: @im=ibus DESKTOP_SESSION: ubuntu LC_MONETARY: az_IR BAMF_DESKTOP_FILE_HINT: /var/lib/snapd/desktop/applications/code_code.desktop GTK_MODULES: gail:atk-bridge PWD: /home/alibakhshi/PycharmProjects/pythonProject6 GSETTINGS_SCHEMA_DIR: /home/alibakhshi/snap/code/143/.local/share/glib-2.0/schemas XDG_SESSION_DESKTOP: ubuntu LOGNAME: alibakhshi GTK_EXE_PREFIX: /snap/code/143/usr XDG_SESSION_TYPE: x11 GPG_AGENT_INFO: /run/user/1000/gnupg/S.gpg-agent:0:1 SYSTEMD_EXEC_PID: 3608 XAUTHORITY: /run/user/1000/gdm/Xauthority VSCODE_GIT_ASKPASS_NODE: /snap/code/143/usr/share/code/code GJS_DEBUG_TOPICS: JS ERROR;JS LOG WINDOWPATH: 2 HOME: /home/alibakhshi USERNAME: alibakhshi LC_PAPER: az_IR LANG: en_US.UTF-8 LS_COLORS: rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: XDG_CURRENT_DESKTOP: Unity HADOOP_MAPRED_HOME: /home/alibakhshi/hadoop GLEAMVIZ_INSTALLDIR: /home/alibakhshi/GLEAMviz GIT_ASKPASS: /snap/code/143/usr/share/code/resources/app/extensions/git/dist/askpass.sh INVOCATION_ID: 258503e878644dabb2ed49dbe6db0b3c MANAGERPID: 3208 GOROOT: /usr/local/go HADOOP_COMMON_HOME: /home/alibakhshi/hadoop DOTNET_BUNDLE_EXTRACT_BASE_DIR: /home/alibakhshi/.cache/dotnet_bundle_extract CHROME_DESKTOP: code-url-handler.desktop GJS_DEBUG_OUTPUT: stderr VSCODE_GIT_ASKPASS_EXTRA_ARGS: --ms-enable-electron-run-as-node PYSPARK_PYTHON: python3 GSETTINGS_SCHEMA_DIR_VSCODE_SNAP_ORIG: GTK_IM_MODULE_FILE_VSCODE_SNAP_ORIG: LESSCLOSE: /usr/bin/lesspipe %s %s XDG_SESSION_CLASS: user TERM: xterm-256color LC_IDENTIFICATION: az_IR HADOOP_HOME: /home/alibakhshi/hadoop GTK_PATH: /snap/code/143/usr/lib/x86_64-linux-gnu/gtk-3.0 LESSOPEN: | /usr/bin/lesspipe %s USER: alibakhshi HADOOP_HDFS_HOME: /home/alibakhshi/hadoop GTK_PATH_VSCODE_SNAP_ORIG: VSCODE_GIT_IPC_HANDLE: /run/user/1000/vscode-git-4c6a797a43.sock DISPLAY: :1 SHLVL: 1 LOCPATH: /snap/code/143/usr/lib/locale LC_TELEPHONE: az_IR SPARK_HOME: /opt/spark QT_IM_MODULE: ibus LC_MEASUREMENT: az_IR GTK_EXE_PREFIX_VSCODE_SNAP_ORIG: XDG_RUNTIME_DIR: /run/user/1000 XDG_DATA_DIRS_VSCODE_SNAP_ORIG: /usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop LC_TIME: az_IR HADOOP_COMMON_LIB_NATIVE_DIR: /home/alibakhshi/hadoop/lib/native GLEAMVIZ_ROOT: /home/alibakhshi/GLEAMviz-data VSCODE_GIT_ASKPASS_MAIN: /snap/code/143/usr/share/code/resources/app/extensions/git/dist/askpass-main.js JOURNAL_STREAM: 8:30706 XDG_DATA_DIRS: /home/alibakhshi/snap/code/143/.local/share:/home/alibakhshi/snap/code/143:/snap/code/143/usr/share:/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop GDK_BACKEND: x11 PATH: home/alibakhshi/fabric-samples/bin:/home/alibakhshi/.local/bin:home/alibakhshi/fabric-samples/bin:/home/alibakhshi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/alibakhshi/.dotnet/tools:/opt/spark/bin:/opt/spark/sbin:/home/alibakhshi/hadoop/sbin:/home/alibakhshi/hadoop/bin:/opt/spark/bin:/opt/spark/sbin:/usr/local/go/bin:/opt/spark/bin:/opt/spark/sbin:/home/alibakhshi/hadoop/sbin:/home/alibakhshi/hadoop/bin:/opt/spark/bin:/opt/spark/sbin:/usr/local/go/bin GDMSESSION: ubuntu HADOOP_YARN_HOME: /home/alibakhshi/hadoop ORIGINAL_XDG_CURRENT_DESKTOP: ubuntu:GNOME DBUS_SESSION_BUS_ADDRESS: unix:path=/run/user/1000/bus GTK_IM_MODULE_FILE: /home/alibakhshi/snap/code/common/.cache/immodules/immodules.cache LOCPATH_VSCODE_SNAP_ORIG: GIO_MODULE_DIR: /home/alibakhshi/snap/code/common/.cache/gio-modules GIO_LAUNCHED_DESKTOP_FILE_PID: 6772 GIO_LAUNCHED_DESKTOP_FILE: /var/lib/snapd/desktop/applications/code_code.desktop LC_NUMERIC: az_IR TERM_PROGRAM: vscode _: /usr/bin/env OLDPWD: /home/alibakhshi/PycharmProjects/pythonProject6 PYTHONIOENCODING: UTF-8 PYTHONUNBUFFERED: 1 |
توضیح کد راه حل سوم
این کد پایتون به شما امکان میدهد تا تمام متغیرهای محیطی (environment variables) سیستم عامل خود را نمایش دهید. این کد از ماژول os
برای دسترسی به متغیرهای محیطی استفاده میکند و از یک حلقه for
برای گرفتن هر متغیر و مقدار متناظر استفاده میکند. سپس با استفاده از print
، اطلاعات متغیرهای محیطی را چاپ میکند.
os.environ.items()
: این عبارت لیستی از تمام متغیرهای محیطی را برمیگرداند.for variable, value in os.environ.items()
: این حلقهfor
از لیست تمام متغیرهای محیطی عبور میکند و هر متغیر و مقدار متناظر را در متغیرهایvariable
وvalue
ذخیره میکند.print('{}: {}'.format(variable, value))
: این دستور مقدار متغیرها به همراه نام متغیرها را نمایش میدهد.format
برای جایگزین کردن مقادیر متغیرها درون دستورprint
استفاده میشود.
با اجرای این کد، متغیرهای محیطی مانند PATH
(مسیرهای جستجوی برنامهها) و HOME
(مسیر خانه کاربر) را نمایش میدهد. این اطلاعات ممکن است بر اساس سیستمعامل شما متفاوت باشد.
مقداد علی بخشی هستم. موسیقی دان، برنامه نویس، متخصص هوش مصنوعی، علم داده، متخصص بلاکچین و توسعه دهنده ربات های هوشمند.
دانش آموخته مقطع ارشد و دکتری دانشکده فنی دانشگاه تهران هستم. با سابقه تدریس درس برنامه نویسی در دانشگاه (پردیس بین الملل کیش دانشگاه تهران)