Python获取电脑用户信息

获取当前用户名

方法一、使用操作系统库

import os
user = os.getlogin() # 获取当前用户名。

方法二、使用环境变量

import os
import platform
if platform.system() == "Windows":
    user = os.environ.get("USERNAME") # Windows使用username变量
else:
    user = os.environ.get("USER") # Linux使用USER变量

方法三、使用getpass库

import getpass
user = getpass.getuser()

方法四、使用os 和 pwd 模块中定义的 passwd 结构

# pwd 模块仅适用于 Linux 环境。但是 os 适用于 Windows 和 Linux。
import os
import pwd

user = pwd.getpwuid(os.getuid())[0]

获取hostname

方法一、使用socket

import socket
print(socket.gethostname())
# 或者
print(socket.gethostbyaddr(socket.gethostname())[0])

方法二、使用platform

import platform
print(platform.node())

方法三、使用os

import os, platform
 
if platform.system() == "Windows":
    print(platform.uname().node)
else:
    print(os.uname()[1])   # 在windows中不能使用

<think>好的,我现在需要帮用户解决如何使用Python获取电脑内存和磁盘存储信息的问题。首先,我得回忆一下Python中相关的库和方法。用户提到了内存和磁盘,所以可能需要用到os模块、psutil库,或者系统命令。 根据用户提供的引用,特别是引用[3]中的示例代码,他们使用了os.popen调用df命令来获取磁盘信息。但这种方法可能依赖于操作系统,比如在Windows上可能不适用。所以可能需要考虑跨平台的解决方案。psutil库是一个跨平台的库,可以获取系统信息,包括内存和磁盘,这可能更可靠。 接下来,内存方面,引用[2]提到了sys.getrefcount和内存管理的问题,但用户这里需要的是获取内存使用情况,而不是管理内存。所以应该使用psutil来获取内存的详细信息,比如总内存、可用内存等。 对于磁盘信息,除了使用os模块执行系统命令,psutil同样提供了disk_usage方法,可以获取分区的使用情况,包括总空间、已用空间和剩余空间。这样代码会更简洁,跨平台性更好。 另外,用户可能需要代码示例,所以需要编写两个函数:一个用于内存,一个用于磁盘。同时,要处理可能的异常,比如磁盘路径不存在的情况。 还需要注意单位的转换,将字节转换为GB,方便阅读。例如,psutil返回的是字节数,除以1024的三次方得到GB。 然后,检查是否需要安装psutil库,因为这不是Python的标准库,可能需要用户通过pip安装。所以在回答中需要提醒用户安装这个库。 最后,确保代码的兼容性,比如在WindowsLinux下都能运行,psutil处理了这些差异,所以使用psutil是更好的选择。同时,引用相关的参考资料,比如引用[3]中的代码示例,但指出使用psutil的优势。 总结步骤: 1. 使用psutil获取内存信息(总内存、可用内存等)。 2. 使用psutil获取磁盘分区信息及其使用情况。 3. 处理异常情况,比如无效的磁盘路径。 4. 转换字节到更易读的单位。 5. 提供完整的代码示例,并解释各部分的作用。 6. 提醒安装psutil库。</think>要使用Python获取计算机的内存和磁盘存储信息,可以通过`psutil`库实现跨平台兼容的解决方案。以下是具体步骤和代码实现: --- ### 一、获取内存信息 内存信息包括总物理内存、可用内存和当前使用百分比。 **实现代码:** ```python import psutil def get_memory_info(): mem = psutil.virtual_memory() return { "总内存(GB)": round(mem.total / (1024 ** 3), 2), "可用内存(GB)": round(mem.available / (1024 ** 3), 2), "使用百分比(%)": mem.percent } print("内存信息:", get_memory_info()) ``` --- ### 二、获取磁盘存储信息 通过遍历所有磁盘分区,获取每个分区的总空间、已用空间和剩余空间。 **实现代码:** ```python def get_disk_info(): disks = {} for part in psutil.disk_partitions(): try: usage = psutil.disk_usage(part.mountpoint) disks[part.device] = { "挂载点": part.mountpoint, "总空间(GB)": round(usage.total / (1024 ** 3), 2), "已用空间(GB)": round(usage.used / (1024 ** 3), 2), "剩余空间(GB)": round(usage.free / (1024 ** 3), 2), "使用百分比(%)": usage.percent } except PermissionError: continue # 跳过无权限访问的分区 return disks print("磁盘信息:", get_disk_info()) ``` --- ### 三、代码说明 1. **依赖库安装**: 需先安装`psutil`库,执行命令: ```bash pip install psutil ``` 2. **内存信息**: - `psutil.virtual_memory()`返回包含内存详细数据的对象。 - 通过字节到GB的转换(`1GB = 1024^3 字节`),结果保留两位小数。 3. **磁盘信息**: - `psutil.disk_partitions()`获取所有磁盘分区。 - `psutil.disk_usage(path)`获取指定路径的磁盘使用情况。 - 处理`PermissionError`异常以避免无权限访问的分区导致程序终止。 --- ### 四、输出示例 运行上述代码后,输出结果类似: ``` 内存信息: {'总内存(GB)': 15.86, '可用内存(GB)': 8.21, '使用百分比(%)': 48.3} 磁盘信息: { '/dev/sda1': {'挂载点': '/', '总空间(GB)': 465.76, '已用空间(GB)': 210.45, '剩余空间(GB)': 255.31, '使用百分比(%)': 45.2}, 'C:\\': {'挂载点': 'C:\\', '总空间(GB)': 200.0, ...} } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值