【Python快速入门和实践020】Python常用脚本-查看电脑基本信息

一、功能介绍

这段代码的功能是收集并展示计算机系统的详细信息,包括操作系统、版本、架构、处理器等硬件信息以及内存和磁盘的使用情况。下面是代码的详细说明:

代码功能概述

  1. 获取系统信息 (get_system_info 函数): 这个函数负责收集系统的信息,包括操作系统名称、版本、架构、处理器型号、物理核心数、逻辑处理器数、总内存和可用内存等。

  2. 磁盘使用情况 (get_system_info 函数的一部分): 对于每个磁盘分区,该函数会获取其总容量、已用空间和剩余空间,并将这些信息存储在一个字典中。

  3. 打印系统信息 (print_system_info 函数): 这个函数用于格式化并打印从 get_system_info 函数中获取的数据。它会按照一定的格式输出每项信息,对于磁盘使用情况则进一步细分展示每个分区的信息。

代码结构详解

  1. 导入必要的模块:

    • platform: 用于获取操作系统相关的详细信息。
    • psutil: 提供了跨平台的方法来获取进程和系统利用率(CPU、内存、磁盘、网络等)的信息。
  2. 定义 get_system_info 函数:

    • 使用 platform 模块获取操作系统、版本、架构、处理器等信息。
    • 使用 psutil 模块获取 CPU 核心数、逻辑处理器数、内存使用情况。
    • 遍历所有磁盘分区,获取每个分区的总容量、已用空间和剩余空间。
  3. 定义 print_system_info 函数:

    • 打印标题和分隔线。
    • 遍历收集到的信息字典,并根据数据类型进行格式化输出。
    • 如果遇到磁盘使用情况的子字典,则进一步展示每个磁盘分区的详细信息。
  4. 主执行部分 (if __name__ == "__main__":):

    • 调用 get_system_info 函数获取系统信息。
    • 调用 print_system_info 函数打印收集到的信息。

二、代码

python 复制代码
import platform
import psutil


def get_system_info():
    info = {}
    info['操作系统'] = platform.system()
    info['系统版本'] = platform.version()
    info['架构'] = platform.architecture()[0]
    info['机器类型'] = platform.machine()
    info['处理器'] = platform.processor()
    info['物理核心数'] = psutil.cpu_count(logical=False)
    info['逻辑处理器数'] = psutil.cpu_count(logical=True)
    info['总内存 (GB)'] = round(psutil.virtual_memory().total / (1024 ** 3), 2)
    info['可用内存 (GB)'] = round(psutil.virtual_memory().available / (1024 ** 3), 2)

    # 获取磁盘分区及其使用情况
    disk_usage = {}
    for partition in psutil.disk_partitions():
        try:
            usage = psutil.disk_usage(partition.mountpoint)
            disk_usage[partition.device] = {
                '总容量 (GB)': round(usage.total / (1024 ** 3), 2),
                '已用空间 (GB)': round(usage.used / (1024 ** 3), 2),
                '剩余空间 (GB)': round(usage.free / (1024 ** 3), 2),
            }
        except PermissionError:
            # 可能会遇到权限问题,忽略这些分区
            continue

    info['磁盘使用情况'] = disk_usage

    return info


def print_system_info(info):
    print("计算机系统信息:")
    print("-" * 30)
    for key, value in info.items():
        if isinstance(value, dict):
            print(f"{key}:")
            for sub_key, sub_value in value.items():
                if isinstance(sub_value, dict):
                    print(f"  {sub_key}:")
                    for sub_sub_key, sub_sub_value in sub_value.items():
                        print(f"    {sub_sub_key}: {sub_sub_value} GB")
                else:
                    print(f"  {sub_key}: {sub_value} GB")
        else:
            print(f"{key}: {value}")


if __name__ == "__main__":
    system_info = get_system_info()
    print_system_info(system_info)

执行结果:

相关推荐
宸津-代码粉碎机16 分钟前
Spring 6.0+Boot 3.0实战避坑全指南:5大类高频问题与解决方案(附代码示例)
java·数据仓库·hive·hadoop·python·技术文档编写
傻啦嘿哟16 分钟前
Python自动整理音乐文件:按艺术家和专辑分类歌曲
数据库·python·分类
weixin_4624462321 分钟前
基于 Flask + lunar-python 的农历转换 API 实战(公历 ↔ 农历 / 干支 / 生肖 / 节日)
python·flask·节日
weixin_5795996634 分钟前
编写一个程序,输入两个数字的加减乘除余数(Python版)
开发语言·python
liu****37 分钟前
02_Pandas_数据结构
数据结构·python·pandas·python基础
RFCEO1 小时前
用手机写 Python程序解决方案
开发语言·python·智能手机·qpython环境安装
0思必得01 小时前
[Web自动化] Requests模块基本使用
运维·前端·python·自动化·html·web自动化
AAA简单玩转程序设计1 小时前
救命!Python 这些基础操作居然能省一半工作量
python
Brduino脑机接口技术答疑1 小时前
TDCA 算法在 SSVEP 场景中:Padding 的应用对象与工程实践指南
人工智能·python·算法·数据分析·脑机接口·eeg
quant_19861 小时前
如何处理大规模行情数据:从源头到终端的实战教程
大数据·开发语言·经验分享·python·金融