2008-09-21 36 views

Trả lời

192

Tôi thường sử dụng sys.platform để tải nền tảng. sys.platform sẽ phân biệt giữa linux, các unix khác và OS X trong khi os.name là "posix" cho tất cả chúng.

Để biết thông tin chi tiết hơn, hãy sử dụng platform module. Điều này có chức năng đa nền tảng sẽ cung cấp cho bạn thông tin về kiến ​​trúc máy, hệ điều hành và phiên bản hệ điều hành, phiên bản của Python, v.v. Ngoài ra nó có các chức năng đặc trưng cho os để có được những thứ như bản phân phối Linux cụ thể.

16

https://docs.python.org/library/os.html

Để bổ sung cho bài Greg, nếu bạn đang ở trên một hệ thống posix, trong đó bao gồm hệ điều hành MacOS, Linux, Unix, vv bạn có thể sử dụng os.uname() để có được một cảm giác tốt hơn cho những loại hệ thống nó là.

+0

Mặc dù câu trả lời của bạn là nắm tay và là đúng, câu trả lời Greg Hewgill là hoàn thiện hơn, Tôi đánh giá cao câu trả lời của bạn và tư vấn cho bạn, đăng thêm rồi chỉ liên kết, trong tương lai. – UnkwnTech

+0

Vâng, đó là súng nhanh nhất trong vấn đề phía tây. Tôi có xu hướng đăng mọi thứ nhanh chóng sau đó chỉnh sửa với nhiều thông tin hơn. – bmdhacks

+0

Tôi thường đợi để trả lời các câu hỏi của mình khi tôi quay lại với họ để xem có bài đăng nào tốt hơn ngay cả sau khi tôi đã chấp nhận hay không. – UnkwnTech

36
import os 
print os.name 

Điều này cung cấp cho bạn những thông tin cần thiết bạn thường cần. Để phân biệt giữa các phiên bản Windows khác nhau, bạn sẽ phải sử dụng một phương pháp nền tảng cụ thể.

+18

Trên mac, os.name cho "posix", mà trường hợp của tôi không giúp - sys.platform đã thực hiện thủ thuật – Steg

+0

trong cửa sổ, nó chỉ hiển thị nt –

+1

Trên solaris, nó cũng hiển thị posix. : p – Khopa

2

Something dọc theo dòng:

import os 
if (os.name == "posix"): 
    print os.system("uname -a") 
# insert other possible OSes here 
# ... 
else: 
    print "unknown OS" 
157

Nếu bạn muốn dữ liệu người dùng có thể đọc được nhưng vẫn chi tiết, bạn có thể sử dụng platform.platform()

>>> import platform 
>>> platform.platform() 
'Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne' 

platform cũng có một số phương pháp hữu ích khác:

>>> platform.system() 
'Windows' 
>>> platform.release() 
'XP' 
>>> platform.version() 
'5.1.2600' 

Đây là một vài cuộc gọi khác nhau mà bạn có thể ke để xác định bạn đang ở đâu

import platform 
import sys 

def linux_distribution(): 
    try: 
    return platform.linux_distribution() 
    except: 
    return "N/A" 

print("""Python version: %s 
dist: %s 
linux_distribution: %s 
system: %s 
machine: %s 
platform: %s 
uname: %s 
version: %s 
mac_ver: %s 
""" % (
sys.version.split('\n'), 
str(platform.dist()), 
linux_distribution(), 
platform.system(), 
platform.machine(), 
platform.platform(), 
platform.uname(), 
platform.version(), 
platform.mac_ver(), 
)) 

Các đầu ra của kịch bản này chạy trên một bó toàn bộ các hệ thống khác nhau có sẵn ở đây: https://github.com/hpcugent/easybuild/wiki/OS_flavor_name_version

+0

Đây là câu trả lời tôi đang tìm kiếm! –

Các vấn đề liên quan