2015-08-03 8 views
1

Есть ли pythonic способ проверить, является ли ОС 64-битным Ubuntu?Есть ли pythonic способ проверить, является ли OS 64-битным Ubuntu?

В настоящее время, я делал это так:

import os 

def check_is_linux(distro, architecture, err_msg): 
    try: 
     this_os = os.popen('lsb_release -d').read() 
     this_arch = os.popen('uname -a').read() 
     assert distro in this_os and architecture in this_arch, err_msg 
    except: 
     print(err_msg) 

def check_is_64bit_ubuntu(err_msg): 
    check_is_linux('Ubuntu', 'x86_64', err_msg) 

ответ

3

Вы можете использовать platform module, чтобы получить распределение и процессор информации:

import platform 

def is_linux(distro, architecture): 
    if not platform.system() == 'Linux': 
     return False 

    if platform.linux_distribution()[0].lower() != distro: 
     return False 

    return platform.processor() == architecture 

def is_64bit_ubuntu(): 
    return is_linux('ubuntu', 'x86_64') 

if not is_64bit_ubuntu(): 
    print(err_msg) 
+0

Спасибо! 'платформа' отлично! Но небольшая ошибка, это должно быть 'is_linux ('ubuntu', 'x86_64')' из-за 'platform.linux_distribution() [0] .lower()' – alvas

+0

@alvas: ах, да, моя ошибка. Рад, что я помог! –

0

Используйте функциональные возможности, обеспеченные platform модулем, особенно platform.architecture и platform.uname.