platform --- Truy cập vào dữ liệu nhận dạng của nền tảng cơ bản¶
Source code: Lib/platform.py
Ghi chú
Các nền tảng cụ thể được liệt kê theo thứ tự bảng chữ cái, trong đó Linux được bao gồm trong phần Unix.
Đa nền tảng¶
- platform.architecture(executable=sys.executable, bits='', linkage='')¶
Truy vấn tệp thực thi đã cho (mặc định là nhị phân trình thông dịch Python) để biết các thông tin kiến trúc khác nhau.
Trả về một bộ
(bits, linkage)chứa thông tin về kiến trúc bit và định dạng liên kết được sử dụng cho tệp thực thi. Cả hai giá trị đều được trả về dưới dạng chuỗi.Các giá trị không thể xác định được sẽ được trả về như được đưa ra bởi các tham số đặt trước. Nếu các bit được cung cấp dưới dạng
''thìsizeof(pointer)(hoặcsizeof(long)trên phiên bản Python < 1.5.2) sẽ được sử dụng làm chỉ báo cho kích thước con trỏ được hỗ trợ.Hàm này dựa vào lệnh
filecủa hệ thống để thực hiện công việc thực tế. Tính năng này khả dụng trên hầu hết nếu không phải tất cả các nền tảng Unix và một số nền tảng không phải Unix và chỉ khi tệp thực thi trỏ tới trình thông dịch Python. Mặc định hợp lý được sử dụng khi các nhu cầu trên không được đáp ứng.Ghi chú
Trên macOS (và có lẽ cả các nền tảng khác), các tệp thực thi có thể là các tệp phổ quát chứa nhiều kiến trúc.
Để đạt được "64-bitness" của trình thông dịch hiện tại, việc truy vấn thuộc tính
sys.maxsizeis_64bits = sys.maxsize > 2**32
- platform.machine()¶
Trả về loại máy, ví dụ:
'AMD64'. Một chuỗi trống được trả về nếu không thể xác định được giá trị.Đầu ra phụ thuộc vào nền tảng và có thể khác nhau về quy ước đặt tên và cách viết.
- platform.node()¶
Trả về tên mạng của máy tính (có thể không đủ điều kiện!). Một chuỗi trống được trả về nếu không thể xác định được giá trị.
- platform.platform(aliased=False, terse=False)¶
Trả về một chuỗi xác định nền tảng cơ bản với càng nhiều thông tin hữu ích càng tốt.
Đầu ra được dự định là human readable thay vì có thể phân tích được bằng máy. Nó có thể trông khác nhau trên các nền tảng khác nhau và điều này là có chủ đích.
Nếu aliased là đúng, hàm này sẽ sử dụng bí danh cho nhiều nền tảng khác nhau để báo cáo tên hệ thống khác với tên thông thường của chúng, ví dụ: SunOS sẽ được báo cáo là Solaris. Hàm
system_alias()được sử dụng để thực hiện việc này.Đặt terse thành true khiến hàm chỉ trả về thông tin tối thiểu tuyệt đối cần thiết để xác định nền tảng.
Thay đổi trong phiên bản 3.8: Trên macOS, hàm hiện sử dụng
mac_ver(), nếu nó trả về chuỗi phát hành không trống, để lấy phiên bản macOS thay vì phiên bản Darwin.
- platform.processor()¶
Trả về tên bộ xử lý (thực), ví dụ:
'amdk6'.Một chuỗi trống được trả về nếu không thể xác định được giá trị. Lưu ý rằng nhiều nền tảng không cung cấp thông tin này hoặc chỉ trả về giá trị tương tự như đối với
machine(). NetBSD thực hiện điều này.
- platform.python_build()¶
Trả về một bộ
(buildno, builddate)cho biết ngày và số bản dựng Python dưới dạng chuỗi.
- platform.python_compiler()¶
Trả về một chuỗi xác định trình biên dịch được sử dụng để biên dịch Python.
- platform.python_branch()¶
Trả về một chuỗi xác định nhánh SCM triển khai Python.
- platform.python_implementation()¶
Trả về một chuỗi xác định việc triển khai Python. Các giá trị trả về có thể có là: 'CPython', 'IronPython', 'Jython', 'PyPy'.
- platform.python_revision()¶
Trả về một chuỗi xác định bản sửa đổi SCM triển khai Python.
- platform.python_version()¶
Trả về phiên bản Python dưới dạng chuỗi
'major.minor.patchlevel'.Lưu ý rằng không giống như Python
sys.version, giá trị trả về sẽ luôn bao gồm patchlevel (mặc định là 0).
- platform.python_version_tuple()¶
Trả về phiên bản Python dưới dạng bộ chuỗi
(major, minor, patchlevel).Lưu ý rằng không giống như
sys.versioncủa Python, giá trị được trả về sẽ luôn bao gồm patchlevel (mặc định là'0').
- platform.release()¶
Trả về bản phát hành của hệ thống, ví dụ:
'2.2.0'hoặc'NT'. Một chuỗi trống được trả về nếu không thể xác định được giá trị.
- platform.system()¶
Trả về tên hệ thống/HĐH, chẳng hạn như
'Linux','Darwin','Java','Windows'. Một chuỗi trống được trả về nếu không thể xác định được giá trị.Trên iOS và Android, điều này trả về tên hệ điều hành mà người dùng nhìn thấy (ví dụ:
'iOS,'iPadOS'hoặc'Android'). Để lấy tên kernel ('Darwin'hoặc'Linux'), hãy sử dụngos.uname().
- platform.system_alias(system, release, version)¶
Trả về
(system, release, version)bí danh cho các tên tiếp thị phổ biến được sử dụng cho một số hệ thống. Nó cũng thực hiện một số việc sắp xếp lại thông tin trong một số trường hợp có thể gây nhầm lẫn.
- platform.version()¶
Trả về phiên bản phát hành của hệ thống, ví dụ:
'#3 on degas'. Một chuỗi trống được trả về nếu không thể xác định được giá trị.Trên iOS và Android, đây là phiên bản hệ điều hành hướng tới người dùng. Để có phiên bản kernel Darwin hoặc Linux, hãy sử dụng
os.uname().
- platform.uname()¶
Giao diện uname khá di động. Trả về một
namedtuple()chứa sáu thuộc tính:system,node,release,version,machinevàprocessor.processorđược giải quyết muộn, theo yêu cầu.Lưu ý: hai tên thuộc tính đầu tiên khác với tên do
os.uname()đưa ra, trong đó chúng được đặt tên làsysnamevànodename.Các mục không thể xác định được đặt thành
''.Thay đổi trong phiên bản 3.3: Kết quả đã thay đổi từ một bộ dữ liệu thành
namedtuple().Thay đổi trong phiên bản 3.9:
processorđược giải quyết muộn thay vì ngay lập tức.
nền tảng Java¶
- platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))¶
Giao diện phiên bản dành cho Jython.
Trả về một bộ
(release, vendor, vminfo, osinfo)với vminfo là một bộ(vm_name, vm_release, vm_vendor)và osinfo là một bộ(os_name, os_version, os_arch). Các giá trị không thể xác định được đặt thành giá trị mặc định được cung cấp dưới dạng tham số (tất cả đều mặc định là'').Không được dùng nữa kể từ phiên bản 3.13, sẽ bị xóa trong phiên bản 3.15: Nó phần lớn chưa được kiểm tra, có API khó hiểu và chỉ hữu ích cho việc hỗ trợ Jython.
Nền tảng Windows¶
- platform.win32_ver(release='', version='', csd='', ptype='')¶
Nhận thông tin phiên bản bổ sung từ Sổ đăng ký Windows và trả về một bộ
(release, version, csd, ptype)đề cập đến bản phát hành hệ điều hành, số phiên bản, cấp độ CSD (gói dịch vụ) và loại hệ điều hành (bộ xử lý đa/đơn). Các giá trị không thể xác định được đặt thành giá trị mặc định được cung cấp dưới dạng tham số (tất cả đều mặc định là chuỗi trống).Như một gợi ý: ptype là
'Uniprocessor Free'trên các máy NT có bộ xử lý đơn và'Multiprocessor Free'trên các máy đa bộ xử lý. Zz002zz đề cập đến phiên bản hệ điều hành không có mã gỡ lỗi. Nó cũng có thể nêu'Checked', có nghĩa là phiên bản hệ điều hành sử dụng mã gỡ lỗi, tức là mã kiểm tra các đối số, phạm vi, v.v.
- platform.win32_edition()¶
Trả về một chuỗi đại diện cho phiên bản Windows hiện tại hoặc
Nonenếu không thể xác định được giá trị. Các giá trị có thể bao gồm nhưng không giới hạn ở'Enterprise','IoTUAP','ServerStandard'và'nanoserver'.Added in version 3.8.
- platform.win32_is_iot()¶
Trả về
Truenếu phiên bản Windows dowin32_edition()trả về được công nhận là phiên bản IoT.Added in version 3.8.
nền tảng macOS¶
- platform.mac_ver(release='', versioninfo=('', '', ''), machine='')¶
Nhận thông tin phiên bản macOS và trả về dưới dạng bộ dữ liệu
(release, versioninfo, machine)với versioninfo là bộ dữ liệu(version, dev_stage, non_release_version).Các mục không thể xác định được đặt thành
''. Tất cả các mục tuple là chuỗi.
nền tảng iOS¶
- platform.ios_ver(system='', release='', model='', is_simulator=False)¶
Nhận thông tin phiên bản iOS và trả lại dưới dạng
namedtuple()với các thuộc tính sau:systemlà tên hệ điều hành;'iOS'hoặc'iPadOS'.releaselà số phiên bản iOS dưới dạng chuỗi (ví dụ:'17.2').modellà mã định danh kiểu thiết bị; đây sẽ là một chuỗi như'iPhone13,2'cho thiết bị vật lý hoặc'iPhone'trên trình mô phỏng.is_simulatorlà một boolean mô tả ứng dụng đang chạy trên trình mô phỏng hay thiết bị vật lý.
Các mục nhập không thể xác định được đặt thành giá trị mặc định được cung cấp dưới dạng tham số.
Nền tảng Unix¶
- platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=16384)¶
Cố gắng xác định phiên bản libc mà tệp thực thi được liên kết (mặc định là trình thông dịch Python). Trả về một bộ chuỗi
(lib, version)mặc định có các tham số đã cho trong trường hợp tra cứu không thành công.Lưu ý rằng hàm này có kiến thức sâu sắc về cách các phiên bản libc khác nhau thêm ký hiệu vào tệp thực thi có lẽ chỉ có thể sử dụng được đối với các tệp thực thi được biên dịch bằng gcc.
Tệp được đọc và quét theo khối byte chunksize.
Nền tảng Linux¶
- platform.freedesktop_os_release()¶
Nhận nhận dạng hệ điều hành từ tệp
os-releasevà trả lại dưới dạng lệnh. Tệpos-releaselà freedesktop.org standard và có sẵn trong hầu hết các bản phân phối Linux. Một ngoại lệ đáng chú ý là Android và các bản phân phối dựa trên Android.Tăng
OSErrorhoặc phân lớp khi cả/etc/os-releasevà/usr/lib/os-releaseđều không thể đọc được.Khi thành công, hàm trả về một từ điển trong đó khóa và giá trị là chuỗi. Các giá trị có các ký tự đặc biệt như
"và$không được trích dẫn. Các trườngNAME,IDvàPRETTY_NAMEluôn được xác định theo tiêu chuẩn. Tất cả các trường khác là tùy chọn. Nhà cung cấp có thể bao gồm các trường bổ sung.Lưu ý rằng các trường như
NAME,VERSIONvàVARIANTlà các chuỗi phù hợp để trình bày cho người dùng. Các chương trình nên sử dụng các trường nhưID,ID_LIKE,VERSION_IDhoặcVARIANT_IDđể xác định các bản phân phối Linux.Ví dụ:
chắc chắn get_like_distro(): thông tin = platform.freedesktop_os_release() id = [thông tin["ID"]] nếu "ID_LIKE" trong thông tin: # ids được phân tách bằng dấu cách và được sắp xếp theo thứ tự ưu tiên ids.extend(thông tin["ID_LIKE"].split()) trả về id
Added in version 3.10.
Nền tảng Android¶
- platform.android_ver(release='', api_level=0, manufacturer='', model='', device='', is_emulator=False)¶
Nhận thông tin thiết bị Android. Trả về
namedtuple()với các thuộc tính sau. Các giá trị không thể xác định được sẽ được đặt thành giá trị mặc định được cung cấp dưới dạng tham số.release- Phiên bản Android, dưới dạng chuỗi (ví dụ:"14").api_level- Cấp độ API của thiết bị đang chạy, dưới dạng số nguyên (ví dụ:34dành cho Android 14). Để có được cấp độ API mà Python được xây dựng dựa trên, hãy xemsys.getandroidapilevel().manufacturer- Manufacturer name.model- Model name – thường là tên tiếp thị hoặc số kiểu máy.device- Device name – thường là số model hoặc tên mã.is_emulator-Truenếu thiết bị là trình giả lập;Falsenếu đó là thiết bị vật lý.
Google duy trì list of known model and device names.
Added in version 3.13.
Sử dụng dòng lệnh¶
platform cũng có thể được gọi trực tiếp bằng cách sử dụng khóa chuyển -m của trình thông dịch:
python -m platform [--terse] [--nonaliased] [{nonaliased,terse} ...]
Các tùy chọn sau được chấp nhận:
- --terse¶
In thông tin ngắn gọn về nền tảng. Điều này tương đương với việc gọi
platform.platform()với đối số terse được đặt thànhTrue.
- --nonaliased¶
In thông tin nền tảng mà không cần đặt bí danh tên hệ thống/hệ điều hành. Điều này tương đương với việc gọi
platform.platform()với đối số aliased được đặt thànhTrue.
Bạn cũng có thể chuyển một hoặc nhiều đối số vị trí (terse, nonaliased) để kiểm soát rõ ràng định dạng đầu ra. Chúng hoạt động tương tự như các tùy chọn tương ứng của chúng.