Может ли python определить, на какой ОС он работает?
Может ли python обнаруживать ОС, а затем конструировать оператор if/else для файловой системы.
Мне нужно заменить строку C:\CobaltRCX\in 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)
Ответы
Ответ 1
Я обычно использую это:
import os
if os.name == 'nt':
pass # Windows
else:
pass # other (unix)
изменить:
Надеюсь, что ответ на ваши комментарии:
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' ) )
Ответ 2
Используйте sys.platform
. Вы можете найти более подробную информацию здесь http://docs.python.org/library/platform.html
Ответ 3
Да.
>>> 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
>>>
Ответ 4
Для большинства случаев использования вы должны использовать модуль os.platform
. Однако, если вам нужен более скудный интерфейс, попробуйте platinfo
.
Ответ 5
попробуйте следующее:
import platform
platform.uname()
Он работает как с linux, так и с окнами. FYI: os.uname() не будет работать в Windows, хотя он работает на Linux. Платформа является общей.
Ответ 6
Вы можете посмотреть на 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')
Ответ 7
Вот что я только что создал за день:
CODE:
def GetUserPlatform():
if sys.platform == 'win32':
UsrWinVer = str(sys.getwindowsversion().major)
print("Operating System: Windows " + UsrWinVer)
else:
print("Something else")
GetUserPlatform()
ВЫВОД:
Операционная система: Windows 10