Message60720
platform.release() (which is supposed to return the
Name of Windows) also does not work as it should in
some versions of windows I tried (xp pro sp1). Luckily
to print more than Windows (eg. print Windows XP or
Windows 2000 etc) you can have a look at this
http://www.brunningonline.net/simon/blog/archives/001168.html
of Simon Brunning
also only debian, mdk and redhat is scanned for
GNU/Linux ?? why even bother then?
I think that PSL is good but this module is has hell of
limitations. At least dont' make anyone write this:
import os
distro_info = {
'Arch Linux': '/etc/arch-release',\
'Aurox Linux': '/etc/aurox-release',\
'Conectiva Linux': '/etc/conectiva-release',\
'Debian GNU/Linux': '/etc/debian_release',\
'Debian GNU/Linux': '/etc/debian_version',\
'Fedora Linux': '/etc/fedora-release',\
'Gentoo Linux': '/etc/gentoo-release',\
'Mandrake Linux': '/etc/mandrake-release',\
'Slackware Linux': '/etc/slackware-release',\
'Slackware Linux': '/etc/slackware-version',\
'Solaris/Sparc': '/etc/release',\
'Sun JDS': '/etc/sun-release',\
'Novell SUSE Linux': '/etc/SuSE-release',\
'PLD Linux': '/etc/pld-release',\
'SUSE Linux': '/etc/SuSE-release',\
'Yellow Dog Linux': '/etc/yellowdog-release',\
# many distros use the /etc/redhat-release for
compatibility
# so Redhat is the last
'Redhat Linux': '/etc/redhat-release'\
}
def get_os_info():
if os.name =='nt':
win_version = {
(1, 4, 0): "95",\
(1, 4, 10): "98",\
(1, 4, 90): "ME",\
(2, 4, 0): "NT",\
(2, 5, 0): "2000",\
(2, 5, 1): "XP"
}[os.sys.getwindowsversion()[3],
os.sys.getwindowsversion()[0],
os.sys.getwindowsversion()[1]]
return 'Windows' + ' ' + win_version
elif os.name =='posix':
executable = 'lsb_release'
params = ' --id --codename --release --short'
for path in os.environ['PATH'].split(':'):
full_path_to_executable = os.path.join(path,
executable)
if os.path.exists(full_path_to_executable):
command = executable + params
child_stdin, child_stdout = os.popen2(command)
output = child_stdout.readline().strip()
child_stdout.close()
child_stdin.close()
return output
# lsb_release executable not available, so parse files
for distro in distro_info:
path_to_file = distro_info[distro]
if os.path.exists(path_to_file):
file = open(path_to_file)
text = file.read().strip()
file.close()
if path_to_file.endswith('version'):
text = distro + ' ' + text
return text
print get_os_info()
Thank you |
|
Date |
User |
Action |
Args |
2008-01-20 09:57:45 | admin | link | issue1180267 messages |
2008-01-20 09:57:45 | admin | create | |
|