[PYTHON]Python 3.6 Coding - System Info

标签: python

必死Flag:每天编程一小时。

今天配置环境花费了太多时间,没做什么事情。

OS:Unix Like

Env:Python 3.6.4

Libs:psutil

PS:文中使用到的命令请根据实际环境配置比如我的电脑中,python运行文件的位置就是/usr/local/bin/python3.6


1. psutil安装方法


pip3.6 install psutil
官方文档页面:点我 Click
非特权用户请在命令前加sudo



2. 一个简单的查看内存使用的脚本:


#!/usr/local/bin/python3.6
import psutil
mem = psutil.virtual_memory()
meminfo = "总内存",mem.total/1024/1024,"已使用内存",mem.used/1024/1024,"使用百分比",mem.used/mem.total*100,"%"
print (meminfo)


输出结果:


('总内存', 8192.0, '已使用内存', 7297.80078125, '使用百分比', 89.08448219299316, '%')
巨丑!但是暂时还不知道有什么简单方法把括号&引号去掉,只知道下面的方法可以做到:



#!/usr/local/bin/python3.6
import psutil
mem = psutil.virtual_memory()
meminfo = "总内存:",mem.total/1024/1024,"已使用内存:",mem.used/1024/1024,"使用百分比:",mem.used/mem.total*100,"%"
print (meminfo[0],meminfo[1],meminfo[2],meminfo[3],meminfo[4],meminfo[5],meminfo[6],)

但是似乎很繁琐不是很符合python简单的特性,今天就到这里,明日再战~~

------------------以上2018年1月10日的内容,下面是1月11日的更新:------------------

3. 新的查看系统信息的脚本

增加了cpu,磁盘(有点X蛋不能分开进行格式化输出不知道有没有类似cut的工具),网络,启动时间,登录用户数,排队进程信息。下面是代码:


#!/usr/local/bin/python3.6
import psutil,datetime
###CPU INFO
cpulog = str(psutil.cpu_count())
cpuphy = str(psutil.cpu_count(logical=False))
print ("CPU信息:")
print ("物理个数:"+cpuphy+" 逻辑个数:"+cpulog)
print ("\n")
###MEMORY INFO
mem = psutil.virtual_memory()
memtotal = mem.total/1024/1024
memused = mem.used/1024/1024
memperc = str(memused/memtotal*100)
print ("内存信息:")
print ("总内存:"+str(memtotal)+" 已使用:"+str(memused)+" 百分比:"+memperc[0:6])
print ("\n")
###DISK INFO
diskpoint = psutil.disk_partitions()
diskcount = psutil.disk_usage("/")
print ("磁盘信息:")
for i in diskpoint:
    print (i)           #知识点,如何遍历列表
print (diskcount)
print ("\n")
###NETWORK INFO
ifinfo = psutil.net_if_addrs()
print ("网卡信息:")
for i in ifinfo:
    print (i,ifinfo[i]) #知识点,如何遍历字典
print ("\n")
###BOOT TIME INFO
boottime = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
print ("启动时间:")
print (boottime)
print ("\n")
###USER INFO
userinfo = psutil.users()
print ("当前登录用户:")
for i in userinfo:
    print (i)
print ("\n")
###WAIT PROCESS INFO
procs = psutil.Process().children()
waitprocs = psutil.wait_procs(procs, timeout = 3)
print ("僵尸进程信息:")
print (waitprocs)


今天知识点:

使用for循环遍历列表及字典,

python的变量类型转换,

python的字符串截取,

python中时间戳到时间的转换。



其实吧,目前感觉这个类用处真的不大,还没有shell有效率,以后再看那里能用到。

文章标题的System Info已经达成,明天另起一文。




版权所有:《Hoiwan's 》 => 《[PYTHON]Python 3.6 Coding - System Info
本文地址:http://ihoiwan.com/?post=47
除非注明,文章均为 《Hoiwan's 》 原创,欢迎转载!转载请注明本文地址,谢谢。

发表评论: