(> = 파이썬 3.4)파이썬은 <code>os.getenv()</code>으로 윈도우 10
에 VAR 누락 없음을 반환하지 os.getenv, 난, %DATE%
또는 %TIME%
같은 일부 ENV는 바르 검색 할 수 없습니다입니다
예 :
print(os.getenv('computername')) # works
print(os.getenv('date')) # not working, returning None
print(os.getenv('time')) # not working, returning None
그래서 나는이에 의해 감지 할 수 var에 ENV 파이썬의 목록을 확인 : 은 [print(var) for var in os.environ]
그것은 ENV의 많은 목록을 초래하지만, date
누락 및 time
이상. 이상한 점은 목록의 마지막 항목 인 None
개체 목록입니다. 아마도 var env가 누락되었지만 대화 형 콘솔을 사용할 때만 나타납니다. 목록에 없거나 인쇄물의 일부 아티팩트 일 것입니다. 대화 형 콘솔에서 사용되는 함수?
echo %date% %computername%
이 VAR 사이에 다른 처리와 함께, 좋은 작품, 명령 행 마지막
에서 대화 형 콘솔
import os
varenv = [var for var in os.environ]
[print(var) for var in varenv]`
을보십시오.
아마도 유니 코드와 관련이 있다고 가정하지만 내 연구에서는 아직 답변을 찾지 못했습니다. %DATE%
또는 %TIME%
이 작동하지 않는 이유는 %computername%
입니다.
'DATE'와'TIME'은'CD','RANDOM'과'ERRORLEVEL'과 함께 cmd.exe 셸에서 사용 가능한 가짜 환경 변수입니다. Windows API에는 현재 디렉토리 ('__CD__')와 응용 프로그램 디렉토리 ('__APPDIR__')에 대한 몇 가지 가상 변수와'= '로 시작하는'숨겨진 '환경 변수가 있습니다 (예 : 작업 디렉토리 D : 드라이브의 경우'= D :'와 같이 각 드라이브에. 이것들은'GetEnvironmentVariable'을 직접 호출하여 접근 할 수 있습니다. – eryksun
% DATE % 및 % TIME %는 [동적 환경 변수] (https://en.wikipedia.org/wiki/Environment_variable#Windows)입니다. 하지만 난 파이썬에서 이러한 var을 검색하는 좋은 방법을 찾을 수 없습니다. –
@GuillaumeLebreton, 그들은 cmd.exe의 가짜 변수 일뿐입니다. 어떤 이유인지 알아 내려면'subprocess.check_output ('cmd/u/c "echo % {} %"'. format (name)) .deode ('utf-16le'). rstrip()', for ''DATE ''와 같은 주어진'name'. mojibake 나 best-fit 인코딩이 없도록 UTF-16을 사용해야합니다. – eryksun