如何使用Python标准库获取指定格式的系统特定信息?
可用标准库列表
platform:负责提取操作系统版本信息datetime:负责格式化带时区偏移的系统时间zoneinfo(Python 3.9+ 内置):负责获取IANA格式时区标识os、sys:负责系统层参数读取,适配不同操作系统的内存、系统属性获取逻辑
实现示例代码
import platform import datetime from zoneinfo import ZoneInfo import os import sys def get_system_info(): info = {} # 获取OS信息 if platform.system() == "Linux": os_release = platform.freedesktop_os_release() info["OS"] = f"{os_release['NAME']} {os_release['VERSION_ID']}" elif platform.system() == "Windows": info["OS"] = f"Windows {platform.version()}" elif platform.system() == "Darwin": info["OS"] = f"macOS {platform.mac_ver()[0]}" # 获取总内存(单位:Byte) mem_total = 0 if sys.platform.startswith("linux"): with open("/proc/meminfo", "r") as f: for line in f: if line.startswith("MemTotal:"): mem_total = int(line.split()[1]) * 1024 break elif sys.platform == "win32": import ctypes class MEMORYSTATUSEX(ctypes.Structure): _fields_ = [ ("dwLength", ctypes.c_ulong), ("dwMemoryLoad", ctypes.c_ulong), ("ullTotalPhys", ctypes.c_ulonglong), ("ullAvailPhys", ctypes.c_ulonglong), ("ullTotalPageFile", ctypes.c_ulonglong), ("ullAvailPageFile", ctypes.c_ulonglong), ("ullTotalVirtual", ctypes.c_ulonglong), ("ullAvailVirtual", ctypes.c_ulonglong), ("ullAvailExtendedVirtual", ctypes.c_ulonglong), ] stat = MEMORYSTATUSEX() stat.dwLength = ctypes.sizeof(MEMORYSTATUSEX) ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat)) mem_total = stat.ullTotalPhys elif sys.platform == "darwin": import subprocess mem_total = int(subprocess.check_output(["sysctl", "-n", "hw.memsize"]).strip()) info["Memory"] = mem_total # 获取带时区偏移的系统时间 now = datetime.datetime.now(ZoneInfo('localtime')) info["system Time"] = now.strftime("%H:%M:%S %z") # 获取IANA格式时区名称 info["Timezone"] = str(now.tzinfo) return info if __name__ == "__main__": system_info = get_system_info() # 按指定格式输出 for k, v in system_info.items(): if isinstance(v, str): print(f' "{k}": "{v}",') else: print(f' "{k}": {v},')
如果使用的Python版本低于3.9,可将zoneinfo替换为标准库time模块读取时区信息,需额外做时区名称映射即可得到IANA格式的时区标识。
内容的提问来源于stack exchange,提问作者SrTan
相关产品推荐
相关产品推荐

