有没有一种 Pythonic 方法来检查操作系统是不是是 64 位 Ubuntu?

Posted

技术标签:

【中文标题】有没有一种 Pythonic 方法来检查操作系统是不是是 64 位 Ubuntu?【英文标题】:Is there a pythonic way to check whether OS is a 64bit Ubuntu?有没有一种 Pythonic 方法来检查操作系统是否是 64 位 Ubuntu? 【发布时间】:2015-10-25 11:24:03 【问题描述】:

有没有一种pythonic方法来检查操作系统是否是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)

【问题讨论】:

【参考方案1】:

您可以使用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 太棒了!!但是小错误,应该是is_linux('ubuntu', 'x86_64'),因为platform.linux_distribution()[0].lower() @alvas:啊,是的,我的错。很高兴我能帮上忙!【参考方案2】:

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

【讨论】:

以上是关于有没有一种 Pythonic 方法来检查操作系统是不是是 64 位 Ubuntu?的主要内容,如果未能解决你的问题,请参考以下文章

检查列表是不是已排序的 Pythonic 方法

是否有一种优雅的 Pythonic 方式来计算已处理的数据? [复制]

有没有一种更 Pythonic 的方式来在函数的参数上展开列表?

检查参数类型的 Pythonic 方法

将要覆盖的实现方法分开是pythonic吗?

在 Pandas 中是不是有一种 pythonic 的方法来做一个列联表?