내가 아는 한, 파이썬에는 어떤 운영 체제가 실행되고 있는지 알아내는 세 가지 방법이 있습니다.
os.name
sys.platform
platform.system()
이 정보를 아는 것은 종종 조건부 가져 오기 또는 플랫폼간에 다른 기능을 사용하는 데 유용합니다 (예 : time.clock()
Windows 대 time.time()
UNIX).
제 질문은 왜 이렇게하는 3 가지 다른 방법입니까? 한 가지 방법을 사용해야하고 다른 방법은 사용하지 않아야합니까? 어떤 방법이 '최고'입니까 (가장 미래 지향적이거나 프로그램이 실제로 실행될 수있는 특정 시스템을 실수로 제외 할 가능성이 가장 적음)?
것 같다 sys.platform
보다 더 구체적입니다 os.name
당신이 구별 할 수 있도록 win32
에서 cygwin
(단지 반대가 nt
),과 linux2
에서 darwin
(단지 반대 posix
). 하지만 그 무엇의 차이에 대해 그, 그래서 경우 sys.platform
와 platform.system()
?
예를 들어 더 나은 방법은 다음과 같습니다.
import sys
if sys.platform == 'linux2':
# Do Linux-specific stuff
아니면 이거? :
import platform
if platform.system() == 'Linux':
# Do Linux-specific stuff
지금은를 고수 할 것이므로이 sys.platform
질문은 특별히 긴급하지는 않지만 이에 대한 설명에 대해 매우 감사하겠습니다.
sys.platform.startswith('linux')
대신에sys.platform == 'linux2'
미래의 호환성을 위해