使用 Python 获取 Linux 系统信息
admin
2023-07-31 00:48:37
0

在本文中,我们将会探索使用Python编程语言工具来检索Linux系统各种信息。走你。

哪个Python版本?

当我提及Python,所指的就是CPython 2(准确的是2.7).我会显式提醒那些相同的代码在CPython 3 (3.3)上是不工作的,以及提供一份解释不同之处的备选代码。请确保你已经安装了CPython,在终端上输入python或者python3回车,然后你在终端上应该能看到python的提示符(prompt)。

请注意,所有的程序在它们第一行都是#!/usr/bin/env/python,也就是说,我们想要Python的解释器来执行这些脚本。因此,如果你想你的脚本具有执行性,请使用chmod +x your-script.py, 那么你就可以使用./your-script.py来执行它了(在本文中你将会看到这种方式)

探索platform模块

platform模块在标准库中,它有很多运行我们获得众多系统信息的函数。让我们运行Python解释器来探索它们中的一些函数,那就从platform.uname()函数开始吧:

123 >>> import platform>>> platform.uname()(\’Linux\’, \’fedora.echorand\’, \’3.7.4-204.fc18.x86_64\’, \’#1 SMP Wed Jan 23 16:44:29 UTC 2013\’, \’x86_64\’)

如果你已知道linux上的uname命令,那么你就会认出来这个函数就是这个命令的一个接口。在Python 2上,它会返回一个包含系统类型(或者内核版本),主机名,版本,发布版本,机器的硬件以及处理器信息元组(tuple)。你可以使用下标访问个别属性,像这样:

12 >>> platform.uname()[0]\’Linux\’

在Python 3上,这个函数返回的是一个命名元组:

12345 >>> platform.uname() uname_result(system=\’Linux\’, node=\’fedora.echorand\’,release=\’3.7.4-204.fc18.x86_64\’, version=\’#1 SMP Wed Jan 23 16:44:29UTC 2013\’, machine=\’x86_64\’, processor=\’x86_64\’)

因为返回结果是一个命名元组,这就可以简单地通过名字来指定特定的属性,而不是必须记住下标,像这样:

12 >>> platform.uname().system\’Linux\’

platform模块还有一些上面属性的直接接口,像这样:

12345 >>> platform.system()\’Linux\’ >>> platform.release()\’3.7.4-204.fc18.x86_64\’

linux_distribution()函数返回的有关你所在的linux发布版本的详细信息。例如,在Fedora 18系统上,这个命令会返回如下信息:

12 >>> platform.linux_distribution()(\’Fedora\’, \’18\’, \’Spherical Cow\’)

这个返回结果中包含了版本发布名,版本以及代号元组。特定的Python版本支持的发布版本上可以通过_supported_dists显示的值获得。

1234 >>> platform._supported_dists(\’SuSE\’, \’debian\’, \’fedora\’, \’redhat\’, \’centos\’, \’mandrake\’,\’mandriva\’, \’rocks\’, \’slackware\’, \’yellowdog\’, \’gentoo\’,\’UnitedLinux\’, \’turbolinux\’)

如果你的linux发布版本不在其中(或者其中之一的衍生发行版)。那么你很可能调用了上面这个函数而看不到任何有用的信息。

platform模块的最后一个函数,我们将会看看architecture()函数。当你无参的调用这个函数,它会返回包含架构位数以及python可执行的格式的元组,像这样:

12 >>> platform.architecture()(\’64bit\’, \’ELF\’)

在32位的系统上,你将会看到:

探索platform模块

platform模块在标准库中,它有很多运行我们获得众多系统信息的函数。让我们运行Python解释器来探索它们中的一些函数,那就从platform.uname()函数开始吧:

123 >>> import platform>>> platform.uname()(\’Linux\’, \’fedora.echorand\’, \’3.7.4-204.fc18.x86_64\’, \’#1 SMP Wed Jan 23 16:44:29 UTC 2013\’, \’x86_64\’)

如果你已知道linux上的uname命令,那么你就会认出来这个函数就是这个命令的一个接口。在Python 2上,它会返回一个包含系统类型(或者内核版本),主机名,版本,发布版本,机器的硬件以及处理器信息元组(tuple)。你可以使用下标访问个别属性,像这样:

12 >>> platform.uname()[0]\’Linux\’

在Python 3上,这个函数返回的是一个命名元组:

12345 >>> platform.uname() uname_result(system=\’Linux\’, node=\’fedora.echorand\’,release=\’3.7.4-204.fc18.x86_64\’, version=\’#1 SMP Wed Jan 23 16:44:29UTC 2013\’, machine=\’x86_64\’, processor=\’x86_64\’)

因为返回结果是一个命名元组,这就可以简单地通过名字来指定特定的属性,而不是必须记住下标,像这样:

12 >>> platform.uname().system\’Linux\’

platform模块还有一些上面属性的直接接口,像这样:

12345 >>> platform.system()\’Linux\’ >>> platform.release()\’3.7.4-204.fc18.x86_64\’

linux_distribution()函数返回的有关你所在的linux发布版本的详细信息。例如,在Fedora 18系统上,这个命令会返回如下信息:

12 >>> platform.linux_distribution()(\’Fedora\’, \’18\’, \’Spherical Cow\’)

这个返回结果中包含了版本发布名,版本以及代号元组。特定的Python版本支持的发布版本上可以通过_supported_dists显示的值获得。

1234 >>> platform._supported_dists(\’SuSE\’, \’debian\’, \’fedora\’, \’redhat\’, \’centos\’, \’mandrake\’,\’mandriva\’, \’rocks\’, \’slackware\’, \’yellowdog\’, \’gentoo\’,\’UnitedLinux\’, \’turbolinux\’)

如果你的linux发布版本不在其中(或者其中之一的衍生发行版)。那么你很可能调用了上面这个函数而看不到任何有用的信息。

platform模块的最后一个函数,我们将会看看architecture()函数。当你无参的调用这个函数,它会返回包含架构位数以及python可执行的格式的元组,像这样:

12 >>> platform.architecture()(\’64bit\’, \’ELF\’)

在32位的系统上,你将会看到:

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...