Các giá trị trả về có thể có từ lệnh sau là gì?
import sys
print sys.platform
Tôi biết có rất nhiều khả năng, vì vậy tôi chủ yếu quan tâm đến những cái "chính" (Windows, Linux, Mac OS)
Câu trả lời:
┍━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┑
│ System │ Value │
┝━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━┥
│ Linux │ linux or linux2 (*) │
│ Windows │ win32 │
│ Windows/Cygwin │ cygwin │
│ Windows/MSYS2 │ msys │
│ Mac OS X │ darwin │
│ OS/2 │ os2 │
│ OS/2 EMX │ os2emx │
│ RiscOS │ riscos │
│ AtheOS │ atheos │
│ FreeBSD 7 │ freebsd7 │
│ FreeBSD 8 │ freebsd8 │
│ FreeBSD N │ freebsdN │
│ OpenBSD 6 │ openbsd6 │
┕━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┙
(*) Trước Python 3.3, giá trị cho mọi phiên bản Linux luôn là linux2
; sau, nó là linux
.
macOS
hệ thống hiện tại thì sao? Họ vẫn quyết tâm darwin
?
Mac OS X (10.4, 10.5, 10.7, 10.8):
darwin
Linux (nhân 2.6):
linux2
Windows XP 32 bit:
win32
Các phiên bản trong ngoặc đã được kiểm tra - các phiên bản khác / mới hơn có thể giống nhau.
darwin
, tất cả 2.x linux kernel sẽ linux2
, và Windows sẽ win32 hay win64 .. nhưng, tôi đã không kiểm tra
platform.system()
có thể là một giải pháp ít nhầm lẫn hơn ("Windows" và "Linux").
Như những người khác đã chỉ ra, sys.platform bắt nguồn từ tên mà nhà cung cấp hệ thống đặt cho hệ thống của họ. Tuy nhiên, Python cũng thêm plat- vào sys.path, vì vậy bạn có thể xem tất cả các thư mục plat- * trong bản phân phối Python.
Điều này cung cấp cho bạn danh sách
aix3 aix4 Atheos beos5 darwin freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7 chung chung irix5 irix6 linux2 mac netbsd1 next3 os2emx riscos sunos5 unixware7
Tất nhiên, sys.platform có thể có các giá trị bổ sung, khi Python được biên dịch trên một hệ thống mà không có thư mục dành riêng cho nền tảng nào được tạo.
Từ đây .
win32
, os2
,unknown
Kể từ ngày 29 tháng 12 năm 2013, OS X 10.9.1 Mavericks vẫn được gắn nhãn Darwin.