PDA

Visualizza la versione completa : [Python]Riconoscere il S.O.


Aki
08-07-2005, 09:33
ave populus,
ho uno script che deve girare su piattaforme win && linux, c' e quale l'istruzione che serve a conoscere il sistema op. utilizzato?
Un p come in C che si usa la direttiva condizionale #ifdef.

Wave
08-07-2005, 10:05
di preciso non saprei....ma potresti far lanciare al tuo script un comando (per esempio tipico di windows e vedere se viene eseguito correttamente...se cos non fosse ti troveresti su una macchina UNIX.....

la prima cosa che mi venuta in mente....ma potrebbe essere un idea...

Fox82
08-07-2005, 10:12
import sys

sys.platform # Descrizione breve del sistema operativo
sys.version # Versione dell'interprete, generalmente trovi
# anche delle info sule compilatore/sistema operativo


:ciauz:

Aki
08-07-2005, 10:13
Originariamente inviato da Wave
di preciso non saprei....ma potresti far lanciare al tuo script un comando (per esempio tipico di windows e vedere se viene eseguito correttamente...se cos non fosse ti troveresti su una macchina UNIX.....

la prima cosa che mi venuta in mente....ma potrebbe essere un idea...

ok
allora io provo a fare:


...
os.system("ver") # esempio: VER dovrebbe essere un comando eslusivo di win
...

poi per come faccio da script a sapere se il comando stato eseguito?

Wave
08-07-2005, 10:16
Originariamente inviato da Fox82


import sys

sys.platform # Descrizione breve del sistema operativo
sys.version # Versione dell'interprete, generalmente trovi
# anche delle info sule compilatore/sistema operativo


:ciauz:

mi ai preceduto...lo avevo appena trovato nella documentazione.....

ciao cioa

Wave
08-07-2005, 10:20
Originariamente inviato da Fox82


import sys

sys.platform # Descrizione breve del sistema operativo
sys.version # Versione dell'interprete, generalmente trovi
# anche delle info sule compilatore/sistema operativo


:ciauz:


domanda che mi venuta guardando la documentazione....


os.name

dovrebbe anche questo funzionare giusto???o mi sbaglio???

Lethalman
08-07-2005, 10:56
c'e' un modulo apposta, fai import platform e help(platform)

Comunque os.system('ver') ritorna l'exit status, per avere l'output fai:
r = os.popen('ver')
output = r.read()

Aki
08-07-2005, 11:36
Originariamente inviato da Fox82


import sys

sys.platform # Descrizione breve del sistema operativo
sys.version # Versione dell'interprete, generalmente trovi
# anche delle info sule compilatore/sistema operativo


:ciauz:

cmq sys.platform ritorna (in caso di win) 'win32'
come si pu (se si pu) fare per sapere esattamente la versione del sistema operativo (2000, XP, 98...)?

Wave
08-07-2005, 12:25
guarda con il modulo che ti ha suggerito Lethalman puoi scoprire molte cse della piattaforma su cui gira lo script....

per quanto riguarda windows la cosa migliore che ho trovato questa:


win32_ver(release='', version='', csd='', ptype='')
Get additional version information from the Windows Registry
and return a tuple (version,csd,ptype) referring to version
number, CSD level and OS type (multi/single
processor).

As a hint: ptype returns 'Uniprocessor Free' on single
processor NT machines and 'Multiprocessor Free' on multi
processor machines. The 'Free' refers to the OS version being
free of debugging code. It could also state 'Checked' which
means the OS version uses debugging code, i.e. code that
checks arguments, ranges, etc. (Thomas Heller).

Note: this function only works if Mark Hammond's win32
package is installed and obviously only runs on Win32
compatible platforms.

non so se fa al caso tuo....

cmq sia se dalla console python fai

import platform
help(platform)

puoi vedere tutti i comandi di quel modulo alcuni molto interessanti...

Aki
08-07-2005, 14:21
Originariamente inviato da Wave
guarda con il modulo che ti ha suggerito Lethalman puoi scoprire molte cse della piattaforma su cui gira lo script....

per quanto riguarda windows la cosa migliore che ho trovato questa:


win32_ver(release='', version='', csd='', ptype='')
Get additional version information from the Windows Registry
and return a tuple (version,csd,ptype) referring to version
number, CSD level and OS type (multi/single
processor).

As a hint: ptype returns 'Uniprocessor Free' on single
processor NT machines and 'Multiprocessor Free' on multi
processor machines. The 'Free' refers to the OS version being
free of debugging code. It could also state 'Checked' which
means the OS version uses debugging code, i.e. code that
checks arguments, ranges, etc. (Thomas Heller).

Note: this function only works if Mark Hammond's win32
package is installed and obviously only runs on Win32
compatible platforms.
ok grassie
non so se fa al caso tuo....

cmq sia se dalla console python fai

import platform
help(platform)

puoi vedere tutti i comandi di quel modulo alcuni molto interessanti...

Loading