Di derbarê OS û guhertoya Python -a ku li hawîrdorê dixebite de agahiyê bigirin.

Dikan

Modula platforma pirtûkxaneyê ya standard ji bo agahdariya li ser pergala xebitandinê ya ku Python li ser dixebite û guhertoya wê (berdan) tê bikar anîn. Bi karanîna vê modulê, gengaz e ku meriv pêvajoyê ji bo her OS û guhertoyê veguherîne.

Agahdariya jêrîn li vir tê dayîn.

  • Navê OS -ê bistînin:platform.system()
  • Agahdariya guhertoyê (berdan) bistînin:platform.release(),version()
  • OS û guhertoya yekser bistînin:platform.platform()
  • Nimûneyên encaman ji bo her OS
    • macOS
    • Windows
    • Ubuntu
  • Koda nimûneyê ku li gorî OS -yê pêvajoyê diguherîne

Heke hûn dixwazin guhertoya Python -a ku hûn dixebitin bizanibin, gotara jêrîn bibînin.

Hemî nimûneya kodê di nîvê yekem de li ser macOS Mojave 10.14.2 tê xebitandin; encamên mînak li ser Windows û Ubuntu di nîvê duyemîn de têne xuyang kirin; Fonksiyonên OS-yên taybetî jî di nîvê duyemîn de têne nîqaş kirin.

Navê OS -ê bistînin: platform.system ()

Navê OS -ê ji hêla platform.system () ve tê wergirtin. Nirxa vegerandinê rêzek e.

import platform

print(platform.system())
# Darwin

Agahdariya guhertoyê (berdan) bistînin: platform.release (), version ()

Agahdariya guhertoya OS (berdan) bi fonksiyonên jêrîn têne wergirtin. Di her du rewşan de, nirxa vegerandinê rêzek e.

  • platform.release()
  • platform.version()

Wekî ku di mînaka jêrîn de tê xuyang kirin, platform.release () naverokên hêsantir vedigere.

print(platform.release())
# 18.2.0

print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64

Yekser OS û guhertoyê bistînin: platform.platform ()

Navê OS û guhertoya (berdanê) bi karanîna platform.platform () bi hev re têne girtin. Nirxa vegerandinê rêzek e.

print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit

Ger nirxa nîqaşa kurt be RAST e, tenê agahdariya hindiktirîn dê were vegerandin.

print(platform.platform(terse=True))
# Darwin-18.2.0

Di heman demê de nîqaşek bi navgîn jî heye.

print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit

Encam di hawîrdora mînakê de yek e, lê hin pergalên xebitandinê dê wekî navê OS -ê paşnavek vegerînin.

Ger navdêr rast be, ew li şûna navê hevpar ê pergalê bi karanîna paşnavek encamê vedigere. Mînakî, SunOS dibe Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation

Nimûneyên encaman ji bo her OS

Nimûneyên encamên li ser macOS, Windows, û Ubuntu, û her weha fonksiyonên taybetî yên OS-ê têne xuyang kirin.

macOS

Mînaka encamê li ser macOS Mojave 10.14.2. Eynî wekî mînaka ku li jor hatî destnîşan kirin.

print(platform.system())
# Darwin

print(platform.release())
# 18.2.0

print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64

print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit

Têbînî ku ew Darwin e, ne macOS an Mojave.
Ji bo bêtir agahîya li ser Darwin, li rûpela Wikipedia binêre. Di heman demê de danasîna peywendiya di navbera hejmara guhertoya herî paşîn û navê di macOS -ê de jî heye.

Fonksiyonek taybetî ya madOS-ê heye ku jê re dibêjin platform.mac_ver ().
Nirxa vegerandinê wekî telaq (vegerandin, guhertoya agahdariyê, makîne) tê vegerandin.
Di hawîrdora mînakê de, versioninfo nenas e û tîpek rêzika vala ye.

print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')

Windows

Mînakek encamên li ser Windows 10 Home.

print(platform.system())
# Windows

print(platform.release())
# 10

print(platform.version())
# 10.0.17763

print(platform.platform())
# Windows-10-10.0.17763-SP0

Têbînî ku nirxa vegera 10 -ê ya platform.release () rêzek e, ne hejmar e.

Fonksiyonek taybetî ya Windows-ê heye ku jê re dibêjin platform.win32_ver ().
Nirxa vegerandinê wekî tupek (berdan, guherto, csd, ptype) tê vegerandin.
csd rewşa pakêta karûbarê destnîşan dike.

print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')

Ubuntu

Mînaka encamê li ser Ubuntu 18.04.1 LTS.

print(platform.system())
# Linux

print(platform.release())
# 4.15.0-42-generic

print(platform.version())
# #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018

print(platform.platform())
# Linux-4.15.0-44-generic-x86_64-with-Ubuntu-18.04-bionic

Platformek fonksiyonê ya taybetî ya Unix heye.linux_distribution ().
Nirxa vegerandinê wekî pirjimar (distname, guherto, id) tê vegerandin.

print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')

Têbînî ku platform.linux_distribution () li Python 3.8 hate rakirin. Tête pêşniyar kirin ku li şûna wê distroya pirtûkxaneya partiya sêyemîn bikar bînin, ku pêdivî ye ku ew bi karanîna pip -ê veqetandî were saz kirin.

Koda nimûneyê ku li gorî OS -yê pêvajoyê diguherîne

Heke hûn dixwazin fonksiyonê an rêbaza ku li gorî OS -yê tê bikar anîn biguhezînin, hûn dikarin rêbazek wekî platform.system () bikar bînin da ku nirxê diyar bike.

Ya jêrîn mînakek wergirtina dîroka çêkirina pelê ye.

def creation_date(path_to_file):
    """
    Try to get the date that a file was created, falling back to when it was
    last modified if that isn't possible.
    See http://stackoverflow.com/a/39501288/1709587 for explanation.
    """
    if platform.system() == 'Windows':
        return os.path.getctime(path_to_file)
    else:
        stat = os.stat(path_to_file)
        try:
            return stat.st_birthtime
        except AttributeError:
            # We're probably on Linux. No easy way to get creation dates here,
            # so we'll settle for when its content was last modified.
            return stat.st_mtime

Di vê mînakê de, nirxa platform.system () yekem car tête bikar anîn da ku were destnîşankirin ka ew Windows e an din e.
Dûv re, ew bêtir destwerdana îstîsnayê bikar tîne da ku pêvajoyê di navbera doza ku taybetmendiya st_birthtime heye û rewşên din de biguhezîne.

Copied title and URL