Per quanto ne so, Python ha 3 modi per scoprire su quale sistema operativo è in esecuzione:
os.name
-
sys.platform
platform.system()
Conoscere queste informazioni è spesso utile nelle importazioni condizionali, o utilizzando funzionalità che differiscono tra le piattaforme (ad es. time.clock()
su Windows rispetto a time.time()
su UNIX).
La mia domanda è , perché 3 modi diversi per farlo? Quando dovrebbe essere usato un modo e non un altro? Qual è il modo "migliore" (più a prova di futuro o meno probabile che escluda accidentalmente un particolare sistema su cui il tuo programma può effettivamente essere eseguito)?
Sembra sys.platform
è più specifico di os.name
, permettendoti di distinguere win32
da cygwin
(anziché solo nt
) e linux2
da darwin
(al contrario del solo posix
). Ma se è così, che dire della differenza tra sys.platform
e platform.system()
?
Ad esempio, qual è il migliore , questo:
import sys if sys.platform == "linux2": # Fai cose specifiche per Linux
o questo? :
import platform if platform.system() == "Linux": # Fai cose specifiche per Linux
Per ora mi atterrò a sys. piattaforma
, quindi questa domanda "non è particolarmente urgente, ma sarei molto grato per alcuni chiarimenti in merito.