Может ли python определить, под какой ОС он работает? - PullRequest
5 голосов
/ 18 января 2011

Может ли python обнаружить ОС и затем создать оператор if / else для файловой системы.

Мне нужно заменить C: \ CobaltRCX \ в строке Fn строкой FileSys.

import os.path, csv
from time import strftime

if os.path.?????:## Windows
   FileSys = r"C:\\working\\" 
else:   ##linux   
   FileSys = r"\\working\\" 

y=(strftime("%y%m%d"))
Fn = (r"C:\\working\\Setup%s.csv" %y)

Ответы [ 7 ]

13 голосов
/ 18 января 2011

Я обычно просто использую это:

import os
if os.name == 'nt':
    pass # Windows
else:
    pass # other (unix)

edit:

Надеюсь, в ответ на ваши комментарии:

from time import strftime
import os

if os.name == 'nt': # Windows
    basePath = 'C:\\working\\'
else:
    basePath = '/working/'

Fn = '%sSetup%s.csv' % ( basePath, strftime( '%y%m%d' ) )
4 голосов
/ 18 января 2011

Используйте sys.platform. Вы можете найти больше информации здесь http://docs.python.org/library/platform.html

1 голос
/ 21 августа 2014

попробуйте это:

    import platform
    platform.uname()

Работает как на Linux, так и на Windows. К вашему сведению: os.uname () не будет работать в Windows, хотя работает в Linux Платформа является общей.

1 голос
/ 18 января 2011

Да.

>>> import os
>>> os.uname()
('Linux', 'ubuntu', '2.6.32-27-generic', '#49-Ubuntu SMP Thu Dec 2 00:51:09 UTC 2010', 'x86_64')
>>> system = os.uname()
>>> print system[0] + '/' + system[1]
Linux/ubuntu
>>> 
0 голосов
/ 06 апреля 2018

Вот что я только что создал на днях:

КОД:

def GetUserPlatform():
    if sys.platform == 'win32':
        UsrWinVer = str(sys.getwindowsversion().major)
        print("Operating System: Windows " + UsrWinVer)
    else:
        print("Something else")

GetUserPlatform()

ВЫХОД:

Операционная система: Windows 10

0 голосов
/ 18 января 2011

В большинстве случаев вы должны использовать модуль os.platform.Однако, если вам нужен более тонкий интерфейс, попробуйте platinfo.

0 голосов
/ 18 января 2011

Вы можете посмотреть на os.uname

In [12]: os.uname()
Out[12]: 
('Darwin',
 'demitasse.local',
 '10.6.0',
 'Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386',
 'i386')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...