Quando utilizzare os.name, sys.platform o platform.system?

| | |

Per quanto ne so, Python ha 3 modi per scoprire su quale sistema operativo è in esecuzione:

  1. os.name
  2. sys.platform
  3. 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.

Quando utilizzare os.name, sys.platform o platform.system? find: Questions

Quando utilizzare os.name, sys.platform o platform.system? sin: Questions

Shop

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Best laptop for Minecraft

$590

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method