OS apa yang aku berjalan di?
Apa yang saya butuhkan untuk melihat untuk melihat apakah saya'm pada Windows atau Unix, dll?
553
24
Apa yang saya butuhkan untuk melihat untuk melihat apakah saya'm pada Windows atau Unix, dll?
Output dari
platform.sistem()
adalah sebagai berikut:Linux
Darwin
Windows
Lihat: platform — Akses ke platform yang mendasari identifikasi data
Dang -- lbrandy beat me to the punch, tapi itu doesn't berarti aku bisa't menyediakan anda dengan hasil sistem untuk Vista!
...dan aku tidak bisa percaya tidak ada yang diposting untuk Windows 10 belum:
Sebagai catatan di sini's hasil pada Mac:
Contoh kode untuk membedakan OS's menggunakan python:
Anda juga dapat menggunakan
sys.platform
jika anda sudah memiliki yang diimporsys
dan anda don't ingin mengimpor modul lainJika anda ingin pengguna data yang dapat dibaca tetapi masih rinci, anda dapat menggunakan platform.platform()
Berikut ini's yang berbeda mungkin panggilan anda dapat membuat untuk mengidentifikasi di mana anda berada
Output dari script ini dijalankan pada beberapa sistem yang berbeda (Linux, Windows, Solaris, MacOS) dan arsitektur (x86, x64, Itanium, power pc, sparc) tersedia di sini: https://github.com/hpcugent/easybuild/wiki/OS_flavor_name_version
Ubuntu 12.04 server misalnya memberikan:
Bagaimana jawaban baru:
Ini akan menjadi output jika saya menggunakan MACOS
Saya menggunakan WLST alat yang dilengkapi dengan weblogic, dan itu doesn't mengimplementasikan platform paket.
Selain menambal sistem javaos.py (masalah dengan os.sistem() pada windows 2003 dengan jdk1.5) (yang saya dapat't lakukan, saya harus menggunakan weblogic out of the box), ini adalah apa yang saya gunakan:
Untuk kelompok dari setiap dua elemen satu-satunya cara untuk mendapatkan nama os yang saya temukan adalah untuk memeriksa
os.nama
Java properti (mencoba dengansys
,os
danplatform
modul untuk kelompok dari setiap dua elemen 2.5.3 pada WinXP):/usr/bin/python3.2
Aku mulai sedikit lebih sistematis daftar nilai-nilai apa yang dapat anda harapkan menggunakan berbagai modul (merasa bebas untuk mengedit dan menambahkan sistem anda):
Linux (64bit) + WSL
os.nama posix sys.platform linux platform.sistem() Linux sysconfig.get_platform() linux-x86_64 platform.mesin() x86_64 platform.arsitektur() ('64bit', '')
sys.platform
ini diakhiri dengan versi kernel, misallinux2
, segala sesuatu yang lain tetap samaplatform.arsitektur() = ('64bit', 'ELF')
WINDOWS (64bit)
(dengan 32bit kolom yang berjalan di 32 bit subsistem)
`` resmi python installer 64bit 32bit
os.nama nt nt sys.platform win32 win32 platform.(sistem) Windows Windows sysconfig.get_platform() win-amd64 win32 platform.mesin() AMD64 AMD64 platform.arsitektur() ('64bit', 'WindowsPE') ('64bit', 'WindowsPE')
msys2 64bit 32bit
os.nama posix posix sys.platform msys msys platform.sistem() MSYS_NT-10.0 MSYS_NT-10.0-WOW sysconfig.get_platform() msys-2.11.2-x86_64 msys-2.11.2-i686 platform.mesin() x86_64 i686 platform.arsitektur() ('64bit', 'WindowsPE') ('32bit', 'WindowsPE')
msys2 mingw-w64-x86_64-python3 mingw-w64-i686-python3
os.nama nt nt sys.platform win32 win32 platform.(sistem) Windows Windows sysconfig.get_platform() mingw mingw platform.mesin() AMD64 AMD64 platform.arsitektur() ('64bit', 'WindowsPE') ('32bit', 'WindowsPE')
cygwin 64bit 32bit
os.nama posix posix sys.platform cygwin cygwin platform.sistem() CYGWIN_NT-10.0 CYGWIN_NT-10.0-WOW sysconfig.get_platform() cygwin-3.0.1-x86_64 cygwin-3.0.1-i686 platform.mesin() x86_64 i686 platform.arsitektur() ('64bit', 'WindowsPE') ('32bit', 'WindowsPE')
``
Beberapa komentar:
distutils.util.get_platform()
yang identik dengan `sysconfig.get_platformUntuk membandingkan dengan sistem anda, cukup jalankan script ini (dan silahkan tambahkan hasil di sini jika hilang :)
`` dari masa impor print_function impor os import sys impor platform impor sysconfig
print("os.nama ", os.nama) print("sys.platform ", sys.platform) print("platform.sistem() ", platform.sistem()) print("sysconfig.get_platform() ", sysconfig.get_platform()) print("platform.mesin() ", platform.mesin()) print("platform.arsitektur() ", platform.arsitektur()) ``
Hati-hati jika anda're pada Windows dengan Cygwin di mana
os.nama
adalahposix
.Hasil yang menarik pada windows 8:
Edit: Yang's bug
dalam vena yang sama....
Jika anda tidak mencari untuk versi kernel dll, tetapi mencari untuk distribusi linux, anda mungkin ingin menggunakan berikut
di python2.6+
di python2.4
Jelas, ini akan bekerja hanya jika anda menjalankan ini di linux. Jika anda ingin memiliki lebih generik script di seluruh platform, anda dapat mencampur dengan kode sampel yang diberikan dalam jawaban yang lain.
coba ini:
dan anda dapat membuatnya :
Ada 3 cara untuk mendapatkan OS di Python, masing-masing dengan pro dan kontra:
Metode 1
Bagaimana ini bekerja (sumber): Internal itu panggilan OS Api untuk mendapatkan nama OS seperti yang didefinisikan oleh OS. Ini jelas dapat berubah dari versi ke versi, jadi yang terbaik untuk tidak menggunakan secara langsung. Lihat di sini untuk berbagai OS-nilai-nilai tertentu.
Metode 2
Bagaimana ini bekerja (sumber): Internal memeriksa jika python memiliki OS-modul tertentu yang disebut posix atau nt. Jika anda ingin mengimpor modul ini dan memanggil metode pada itu, ini karya besar. Perhatikan bahwa ada tidak ada perbedaan antara Linux atau OSX.
Metode 3
Bagaimana ini bekerja (sumber): Internal pada akhirnya akan panggil internal OS Api, dapatkan versi OS-nama tertentu seperti 'win32' atau 'win16' atau 'linux1' dan kemudian menormalkan untuk lebih generik nama-nama seperti 'Windows' atau 'Linux' atau 'Darwin' dengan menerapkan beberapa heuristik. Ini adalah yang terbaik portabel cara untuk mendapatkan dinormalisasi nama OS.
Ringkasan
platform.sistem()
.posix
ataunt
kemudian menggunakanos.nama
.sys.platform
.Periksa tes tersedia dengan modul platform dan cetak jawabannya untuk sistem anda:
Anda juga dapat hanya menggunakan platform module tanpa mengimpor os modul untuk mendapatkan semua informasi.
Bagus dan rapi tata letak untuk tujuan pelaporan dapat dicapai dengan menggunakan jalur ini:
Yang memberikan output ini:
Apa yang hilang biasanya adalah versi sistem operasi, tetapi anda harus tahu jika anda menjalankan windows, linux atau mac platform independen caranya adalah dengan menggunakan tes ini:
Solusi ini bekerja untuk kedua
python
dankelompok dari setiap dua elemen
.modul os_identify.py:
Gunakan seperti ini: