kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

python如何读取硬件信息

https://docs.pingcode.com/ask/ask-ask/954442.html

py-cpuinfo库

py-cpuinfo是一个专门用于获取CPU信息的Python库。它可以提供更详细的CPU信息,如CPU型号、品牌、架构等。

1
pip install py-cpuinfo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import cpuinfo

info = cpuinfo.get_cpu_info()

brand = info['brand_raw']
print(f"CPU品牌: {brand}")

arch = info['arch']
print(f"CPU架构: {arch}")

hz_advertised = info['hz_advertised']
print(f"CPU频率: {hz_advertised[0]}")

count = info['count']
print(f"CPU核心数量: {count}")

PYTHON读取内存信息

Python中使用psutil库可以很方便地读取系统内存的信息,包括总内存、可用内存、已使用内存和内存使用率等。

1
pip install psutil

获取虚拟内存信息

1
2
3
4
5
6
7
import psutil
virtual_memory = psutil.virtual_memory()

print(f"总内存: {virtual_memory.total / (10243):.2f} GB")
print(f"可用内存: {virtual_memory.avAIlable / (10243):.2f} GB")
print(f"已使用内存: {virtual_memory.used / (10243):.2f} GB")
print(f"内存使用率: {virtual_memory.percent}%")

获取交换内存信息

1
2
3
4
5
swap_memory = psutil.swap_memory()

print(f"总交换内存: {swap_memory.total / (10243):.2f} GB")
print(f"已使用交换内存: {swap_memory.used / (10243):.2f} GB")
print(f"交换内存使用率: {swap_memory.percent}%")

三、PYTHON读取磁盘信息

Python中可以使用psutil库来读取磁盘信息,包括磁盘分区、使用情况和I/O统计等信息。

1
pip install psutil

获取磁盘分区信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import psutil

partitions = psutil.disk_partitions()

for partition in partitions:
	print(f"设备: {partition.device}")
	print(f"挂载点: {partition.mountpoint}")
	print(f"文件系统类型: {partition.fstype}")
	# 获取磁盘使用情况
	usage = psutil.disk_usage(partition.mountpoint)
	print(f"总空间: {usage.total / (10243):.2f} GB")
	print(f"已用空间: {usage.used / (10243):.2f} GB")
	print(f"可用空间: {usage.free / (10243):.2f} GB")
	print(f"使用率: {usage.percent}%\n")

获取磁盘I/O统计信息

1
2
3
4
5
6
disk_io = psutil.disk_io_counters()

print(f"读操作次数: {disk_io.read_count}")
print(f"写操作次数: {disk_io.write_count}")
print(f"读字节数: {disk_io.read_bytes / (10242):.2f} MB")
print(f"写字节数: {disk_io.write_bytes / (10242):.2f} MB")

四、PYTHON读取网络信息

Python中可以使用psutil库来读取网络信息,包括网络接口、流量统计和连接信息等。

1
pip install psutil

获取网络接口信息

1
2
3
4
5
6
7
8
9
10
11
12
import psutil

network_interfaces = psutil.net_if_addrs()

for interface_name, interface_addresses in network_interfaces.items():
print(f"接口: {interface_name}")
for address in interface_addresses:
	if str(address.family) == 'AddressFamily.AF_INET':
		print(f"  IP地址: {address.address}")
		print(f"  子网掩码: {address.netmask}")
	elif str(address.family) == 'AddressFamily.AF_PACKET':
		print(f"  MAC地址: {address.address}")

获取网络流量统计信息

1
2
3
4
net_io = psutil.net_io_counters()

print(f"发送字节数: {net_io.bytes_sent / (10242):.2f} MB")
print(f"接收字节数: {net_io.bytes_recv / (10242):.2f} MB")

获取网络连接信息

1
2
3
network_connections = psutil.net_connections()

print(f"当前网络连接数: {len(network_connections)}")

五、PYTHON读取GPU信息

对于GPU信息的获取,Python可以使用GPUtil库。该库提供了一个简单的接口来访问NVIDIA GPU的信息,如GPU名称、负载、温度和内存使用情况等。

1
pip install gputil

获取所有GPU的信息

1
2
3
4
5
6
7
8
9
10
11
12
import GPUtil

gpus = GPUtil.getGPUs()

for gpu in gpus:
	print(f"GPU ID: {gpu.id}")
	print(f"GPU名称: {gpu.name}")
	print(f"GPU负载: {gpu.load * 100}%")
	print(f"GPU温度: {gpu.temperature} °C")
	print(f"GPU总显存: {gpu.memoryTotal} MB")
	print(f"GPU已用显存: {gpu.memoryUsed} MB")
	print(f"GPU空闲显存: {gpu.memoryFree} MB\n")

系统信息

https://www.php.cn/faq/2608362.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import os
import socket
import platform

u = platform.uname()
if u.system == 'Linux':
	kernel = u.release
elif u.system == 'Windows':
	kernel = f'Windows {u.release}.{platform.version()}'
print("系统:", kernel)

username = os.getlogin()
print("用户名:", username)

hostname = socket.gethostname()
print("操作系统主机名:", hostname)

Python获取运行目录的5种方法及实现

https://comate.baidu.com/zh/page/a6emajt9jkp

方法对比与实现

使用os.getcwd()获取当前工作目录

1
2
3
4
5
import os

# 获取当前工作目录
current_dir = os.getcwd()
print("当前工作目录:", current_dir)

说明:返回进程启动时的工作目录,可能与脚本所在目录不同。

使用os.path.abspath(__file__)获取脚本绝对路径

1
2
3
4
5
import os

# 获取当前脚本的绝对路径
script_path = os.path.abspath(__file__)
print("脚本绝对路径:", script_path)

说明:__file__是当前脚本的文件名,交互式环境中不可用。

使用os.path.dirname获取脚本所在目录

1
2
3
4
5
import os

# 获取脚本所在目录
script_dir = os.path.dirname(os.path.abspath(__file__))
print("脚本所在目录:", script_dir)

说明:常用于定位脚本同级目录下的资源文件。

使用pathlib.Path.cwd()获取工作目录(推荐)

1
2
3
4
5
from pathlib import Path

# 获取当前工作目录(Path对象)
path_dir = Path.cwd()
print("工作目录(Path):", path_dir)

说明:面向对象的方式,更符合现代Python编程风格。

使用pathlib.Path(__file__)获取脚本路径

1
2
3
4
5
6
from pathlib import Path

# 获取脚本路径和父目录
current_file = Path(__file__).resolve()
print("脚本绝对路径:", current_file)
print("脚本父目录:", current_file.parent)

说明:resolve()可解析符号链接,parent属性直接获取父目录。

方法对比表

1
2
3
4
5
6
7
方法   适用场景    返回值类型 备注

os.getcwd()   获取工作目录  字符串   交互式环境可用
os.path.abspath(__file__) 获取脚本路径  字符串   脚本专用
os.path.dirname() 获取父目录 字符串   需配合abspath
Path.cwd()    获取工作目录  Path对象  推荐现代用法
Path(__file__).resolve()  获取脚本路径  Path对象  支持符号链接解析

python embed 安装 pip

https://www.cnblogs.com/pekkle/p/17016685.html

为了纯净,我在Win10上选择安装了embedded的版本的python 3.11,结果为了安装pip倒腾了一早上。现记录如下。

一、安装python 3.11

从python官网下的,今天的版本是3.11.1,链接: https://www.python.org/ftp/python/3.11.1/python-3.11.1-embed-amd64.zip 下好之后,解压到一个文件夹就行,我的本地文件夹是 “D:\tools\python-3.11.1-embed-amd64"。这时候进去这个文件夹,是不会看到 "Scripts",也不会看到 "Lib/site-packages"。所以这个python本身不带pip。

二、安装pip

下载安装程序 https://bootstrap.pypa.io/get-pip.py https://bootstrap.pypa.io/pip/3.7/get-pip.py 把它保存成为文件 “get-pip.py",放在随便一个目录即可。然后在cmd命令行进入到该路径,执行 python get-pip.py,之后会看到,该脚本把pip, setuptools, wheel三个东西都装好了,默认安装到了我的 "D:\tools\python-3.11.1-embed-amd64\Lib\site-packages\” 路径,并添加了 “D:\tools\python-3.11.1-embed-amd64\Scripts\” 里面的几个执行文件。这时候把路径 “D:\tools\python-3.11.1-embed-amd64\Scripts\” 添加到Path环境变量中。

本以为pip已经可以用了,但这时候无论是执行 “pip",还是执行 "python -m pip",都失败,说找不到mudule pip。这时候想通过配置 "PYTHONPATH” 环境变量来指向site-packages文件夹,但不起效,原因未知。

fix

old: 最后在路径 “D:\tools\python-3.11.1-embed-amd64” 下找到文件 python311._pth,在原有的内容下面添加一行 “D:\tools\python-3.11.1-embed-amd64\Lib\site-packages\”,这一行指向新安装的pip等模块所在的site-packages文件夹。保存后新开个cmd窗口再执行pip,就没问题了。

new: 添加 .\Lib\site-packages\

验证

1
python -m pip --version

三、配置pip阿里源

打开一个windows文件管理窗口,直接在地址栏填入 %APPDATA% 然后回车,进入appdata默认路径,在这下面新建文件夹 “pip",然后再到里面新建文件 "pip.ini",在该文件中填入如下内容。保存后下次调用pip安装时即会默认连接国内阿里源。

1
2
3
4
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com