用Python挖掘Linux系统
admin
2023-07-31 01:42:45
0

在这篇文章里,我们将会探索如何使用Python语言作为一个工具来检测Linux系统各种运行信息。让我们一起来学习吧。

哪种Python?

当我提到Python时,我一般是指CPython 2(准确来说是2.7)。当同样的代码不能在CPython3(3.3)运行时,我们明确地把它指出并给出替代的代码,解释它们之间的不同点。请确保你已经安装了CPython,在终端输入python或者python3你会看到Python提示符出现在你的终端里。

请注意,所有的脚本程序都会以#!/usr/bin/env python作为第一行,意味着我们要Python解析器去运行这些脚本。因此,如果你使用 chmod +x your-script.py 命令给你的脚本添加可执行的权限,你可以使用./your-script.py命令直接运行你的脚本(你将会在这篇文章里看到这种操作)

探索platform模块

在标准库中的platform模块有大量的函数让我们去检查各种系统信息。我们一起来打开Python解释器(译者:直接在命令行输入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命令,你会意识到这个函数就是uname命令的一个接口。在Python 2,这个函数会返回一个由系统类型(或者内核类型),主机名,版本号,发行版号,主机硬件架构和处理器类型组成的元组。你可以使用索引来获取单个属性,像这样:

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'

platfrom模块还提供了一些直接的接口来获取上面的属性值,像这些:

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

函数linx_distribution()返回你正在使用的Linux发行版的详细信息。举个例子,在Fedora 18系统中,这条命令会返回下面的信息:

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

返回值是一个由发行版本名,版本号,代号组成的元组。你可以通过_supported_dists属性来打印你所用的Python版本支持哪些发行版本:

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

如果你的Linux发行版本不是上面那些的其中一个(或者是其中一个的衍生版),那么你调用上面的函数时不会看到任何有用的信息。

最后一个我们要探索的platfrom函数是architecture()函数。当你不添加任何的参数来调用这个函数时,这个函数会返回一个由位架构和Python可执行文件格式组成的元组。比如:

12 >>> platform.e.html\”>amitsaha.github.io。欢迎加入翻译组。

在这篇文章里,我们将会探索如何使用Python语言作为一个工具来检测Linux系统各种运行信息。让我们一起来学习吧。

哪种Python?

当我提到Python时,我一般是指CPython 2(准确来说是2.7)。当同样的代码不能在CPython3(3.3)运行时,我们明确地把它指出并给出替代的代码,解释它们之间的不同点。请确保你已经安装了CPython,在终端输入python或者python3你会看到Python提示符出现在你的终端里。

请注意,所有的脚本程序都会以#!/usr/bin/env python作为第一行,意味着我们要Python解析器去运行这些脚本。因此,如果你使用 chmod +x your-script.py 命令给你的脚本添加可执行的权限,你可以使用./your-script.py命令直接运行你的脚本(你将会在这篇文章里看到这种操作)

探索platform模块

在标准库中的platform模块有大量的函数让我们去检查各种系统信息。我们一起来打开Python解释器(译者:直接在命令行输入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命令,你会意识到这个函数就是uname命令的一个接口。在Python 2,这个函数会返回一个由系统类型(或者内核类型),主机名,版本号,发行版号,主机硬件架构和处理器类型组成的元组。你可以使用索引来获取单个属性,像这样:

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'

platfrom模块还提供了一些直接的接口来获取上面的属性值,像这些:

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

函数linx_distribution()返回你正在使用的Linux发行版的详细信息。举个例子,在Fedora 18系统中,这条命令会返回下面的信息:

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

返回值是一个由发行版本名,版本号,代号组成的元组。你可以通过_supported_dists属性来打印你所用的Python版本支持哪些发行版本:

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

如果你的Linux发行版本不是上面那些的其中一个(或者是其中一个的衍生版),那么你调用上面的函数时不会看到任何有用的信息。

最后一个我们要探索的platfrom函数是architecture()函数。当你不添加任何的参数来调用这个函数时,这个函数会返回一个由位架构和Python可执行文件格式组成的元组。比如:

12 >>> platform./span>architecture

相关内容

热门资讯

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...