有没有一种 pythonic 方法来检查 OS 是否是 64 位 Ubuntu?

Is there a pythonic way to check whether OS is a 64bit 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)

您可以使用 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)

使用 platform 模块提供的功能,特别是 platform.architecture 和 platform.uname。