Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206

    [Python]Riconoscere il S.O.

    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.

  2. #2
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    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...
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  3. #3
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    codice:
    import sys
    
    sys.platform    # Descrizione breve del sistema operativo
    sys.version     # Versione dell'interprete, generalmente trovi 
                    # anche delle info sule compilatore/sistema operativo
    Linux user number 403381

    Stop TCPA!

  4. #4
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    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:
    codice:
    ...
    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?

  5. #5
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    Originariamente inviato da Fox82
    codice:
    import sys
    
    sys.platform    # Descrizione breve del sistema operativo
    sys.version     # Versione dell'interprete, generalmente trovi 
                    # anche delle info sule compilatore/sistema operativo
    mi ai preceduto...lo avevo appena trovato nella documentazione.....

    ciao cioa
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  6. #6
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    Originariamente inviato da Fox82
    codice:
    import sys
    
    sys.platform    # Descrizione breve del sistema operativo
    sys.version     # Versione dell'interprete, generalmente trovi 
                    # anche delle info sule compilatore/sistema operativo

    domanda che mi è venuta guardando la documentazione....

    codice:
    os.name
    dovrebbe anche questo funzionare giusto???o mi sbaglio???
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  7. #7
    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()

  8. #8
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da Fox82
    codice:
    import sys
    
    sys.platform    # Descrizione breve del sistema operativo
    sys.version     # Versione dell'interprete, generalmente trovi 
                    # anche delle info sule compilatore/sistema operativo
    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...)?

  9. #9
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    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:

    codice:
    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...
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  10. #10
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    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:

    codice:
    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...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.