首页 > 编程知识 正文

python编程例子,python编程是啥

时间:2023-05-04 12:07:44 阅读:41590 作者:435

1 .介绍psutil模块Python允许您使用名为psutil的第三方模块获取信息。

psutil模块可在跨平台上使用,支持Linux/UNIX/OSX/Windows等,主要用于系统监视、配置文件、流程管理等。

psutil模块的安装也非常简单,在cmd命令行中键入pip install psutil

2 .使用2. psutil模块(1)获取CPU信息:

使用psutil.cpu_times ()获取CPU的完整信息;

importpsutilpsutil.CPU _ times (scp utimes (user=1082.5689395,system=1252.5164289000004,idle=10992.4232638,idll 默认逻辑值为True;

sutil.CPU _ count (4p sutil.CPU _ count ) logical=false (2PS util系统的CPU使用率的方法为cpu_percent ) ),分别为间隔和p PPP

间隔指定计算cpu利用率的时间间隔,percpu指定是选择总利用率还是每个cpu的利用率。

forxinrange(10 ) :PSutil.CPU_percent ) interval=1) .7. 47.88.28.69.38.18.07.39.815.8 for 8.7、6.3、0.0 ] [ 14.1、9.1、6.3、0.0 ] 0.0 ] [ 18.7、9.0、7.8、0.0 ] [ 15.6、9.1、14.1、0.0 ] [ 26.6、0.0、]

使用psutil.virtual_memory ()获取系统内存使用情况;

可见,总内存大小为8457662464KB=8 GB,4859060224 KB=4.5 GB,使用了57.5%。 剩下的内存为3598602240KB=3.5G

sutil.virtual _ memory (SV mem (total=8457662464,available=3598602240,percent=57.5,used=4859060224,free

sutil.swap _ memory (ss WAP (total=16913375232,used=5444091904,free=11469283328,percent=32.2,sin=0,sin

使用psutil.disk_partitions ()获取磁盘分区的信息;

使用psutil.disk_usage('/'获取磁盘使用情况;

使用psutil.disk_IO_counters ()获取磁盘的io统计信息(如读/写速度);

sutil.disk _ partitions ([ s diskpart (设备=' c :',mountpoint='C:\',fstype='NTFS ',mount PPE ) sdiskpart(device='e:),mountpoint fixed ' ) PSutil.disk_usage(/' ) sdisk usage (总=119821824000,)

d_bytes=5948826624, write_bytes=5090843648, read_time=745, write_time=252)

(4)获取网络信息:

使用psutil.net_io_counters()获取总的网络IO信息

>>> psutil.net_io_counters()snetio(bytes_sent=3398615, bytes_recv=14170744, packets_sent=28431, packets_recv=25604, errin=0, errout=255, dropin=0, dropout=0)

 使用 psutil.net_io_counters(pernic=True)获取网卡的IO信息

>>> psutil.net_io_counters(pernic=True){'Npcap Loopback Adapter': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), '本地连接': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), '无线网络连接': snetio(bytes_sent=3397477, bytes_recv=14170950, packets_sent=24199, packets_recv=24613, errin=0, errout=255, dropin=0, dropout=0)}

使用 psutil.net_if_addrs() 获取网络接口信息

>>> psutil.net_if_addrs(){'Npcap Loopback Adapter': [snicaddr(family=<AddressFamily.AF_LINK: -1>, address='02-00-4C-4F-4F-50', netmask=None, broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', netmask='255.0.0.0', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 23>, address='::1', netmask=None, broadcast=None, ptp=None)], '本地连接': [snicaddr(family=<AddressFamily.AF_LINK: -1>, address='FC-45-96-7F-7E-9E', netmask=None, broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET: 2>, address='169.254.64.227', netmask='255.255.0.0', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 23>, address='fe80::9594:8742:c758:40e3', netmask=None, broadcast=None, ptp=None)]}

使用psutil.net_if_stats()获取网络接口状态信息

>>> psutil.net_if_stats(){'本地连接': snicstats(isup=False, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=0, mtu=1500), 'VMware Network Adapter VMnet1': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=100, mtu=1500), 'VMware Network Adapter VMnet8': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=100, mtu=1500), 'Loopback Pseudo-Interface 1': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=1073, mtu=1500), 'Npcap Loopback Adapter': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=10, mtu=1500), '无线网络连接': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=4294, mtu=1500), 'isatap.{53D15CD1-4A3F-4911-9824-DC7F561E0DFA}': snicstats(isup=False, duplex=<NicDuplex.NIC_DUPLEX_FULL:2>, speed=0, mtu=1280)}

(5)获取其他系统信息:

获取系统的开机时间,并转化为自然的格式

>>> psutil.boot_time()1551576293.0>>> import datetime>>> datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S")'2019-03-03 09: 24: 53'

 获取连接系统的用户列表:

>>> psutil.users()[suser(name='Lenovo', terminal=None, host='0.0.0.0', started=1551576310.0, pid=None)]

获取系统全部的进程信息:

>>> psutil.pids()[0, 4, 404, 632, 728, 736, 796, 832, 844, 852, 948, 648, 848, 1032, 1056, 1180, 1260, 1364, 1412, 1436, 1576, 1692, 1736, 1868, 1964, 1464, 1460, 2176, 2224, 2248, 2312, 2400, 2464, 2508, 2576, 2672, 2732, 2776, 2820, 2940, 2460, 3276, 3396, 3540, 4000, 2164, 1880, 3600, 4076, 4588, 4608, 4916, 4924, 4972, 5316, 6000, 6284, 7040, 6844, 7132, 6976, 5268, 4148, 7476, 7776, 8188, 4084, 2688, 5088, 6352, 9036, 8560, 7784, 8436, 8448, 8284, 8228, 9196, 9192, 2984, 1988, 8392, 7724, 1844, 3232, 2188, 7984, 4288, 4268, 7916, 9468, 3308]

获取单个进程的信息:

>>> p=psutil.Process(1988)#获取指定进程ID=1988>>> p.name() #进程名'vmware.exe'>>> p.exe #进程的光亮的帽子路径<bound method Process.exe of psutil.Process(pid=1988, name='vmware.exe', started='09:48:13')>>>> p.cwd() #进程的工作目录绝对路径'E:\soft_file\VMWARE'>>> p.cmdline() #进程启动的命令行['E:\soft_file\VMWARE\vmware.exe']>>> p.ppid() #父进程ID 4972>>> p.parent() #父进程 psutil.Process(pid=4972, name='DesktopMgr64.exe', started='09:25:21')>>> p.children() # 子进程列表[psutil.Process(pid=7724, name='vmware-tray.exe', started='09:48:18'), psutil.Process(pid=1844, name='vmware-unity-helper.exe', started='09:48:25')]>>> p.status() # 进程状态'running'>>> p.username() #进程的用户名'Lenovo-PC\Lenovo'>>> p.create_time() # 进程创建的时间1551577693.0>>> p.cpu_times() # 进程使用的CPU时间pcputimes(user=6.552042, system=6.3804409, children_user=0.0, children_system=0.0)>>> p.memory_info() # 进程使用的内存pmem(rss=122986496, vms=96821248, num_page_faults=131494, peak_wset=133181440, wset=122986496, peak_paged_pool=529816, paged_pool=488896, peak_nonpaged_pool=97656, nonpaged_pool=89240, pagefile=96821248, peak_pagefile=107077632, private=96821248)>>> p.num_threads() # 进程的线程数量17>>> p.threads() # 所有线程信息[pthread(id=8792, user_time=6.021638599999999, system_time=5.7876370999999995), pthread(id=8528, user_time=0.031200199999999997, system_time=0.031200199999999997), ....]>>> p.terminate()# 结束进程

博文参考连接(廖雪峰的官方网站):https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001511052957192bb91a56a2339485c8a8c79812b400d49000

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。