"""使用random模块中的choice方法制作一个彩票分析小程序,看看中彩票有多难!"""
from random import choice
my_ticket = (2,'b','b','e')
caipiao = [1,2,3,4,5,6,7,8,9,'a','b','c','d','e']
a = 0
while True:
number = []
for i in range(4):
number.append(random.choice(caipiao))
tuple1 = tuple(number)
print(f"您抽中的号码为:{tuple1}")
a += 1
if tuple1 == my_ticket:
print(f"恭喜您中奖啦!!! 本次中奖号码为: {my_ticket},请核实您抽中的号码")
print(f"a = {a}")
break
2. os
1.文件和目录操作
1)os.listdir(path) 列出指定目录下的所有文件和子目录。
import os
files_and_dirs = os.listdir("/home/user")
print(files_and_dirs)
#网络信息
net = psutil.net_io_counters(pernic=True) #net_io_counters()输出总的网络io信息,pernic=True输出每个网络接口的io信息print(net)
其他信息
当前系统登录的用户信息
In [39]: psutil.users()
Out[39]: [suser(name='root', terminal='pts/2', host='111.26.86.20', started=1738993613.0, pid=191667)]
当前系统开机时间
In [40]: import psutil,datetime
In [41]: psutil.boot_time() #返回时间戳
Out[41]: 1733188166.0
In [42]: datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
Out[42]: '2024-12-03 09:09:26'
案例: 给出进程名输出该进程信息
#!/usr/bin/python3#_*_coding:utf-8_*_
import psutil
import sys
def print_proc_name(proc_names):
#psutil.pids()默认返回为列表
pids_list = psutil.pids()
try:
for pid in pids_list:
for proc_name in proc_names:
p = psutil.Process(pid)
if p.name() == proc_name:
print(p)
except Exception as e:
print(str(e))
if __name__ == '__main__':
print_proc_name(sys.argv[1:]) #获取用户指定的参数
9.2 系统进程管理
In [1]: import psutil
In [3]: psutil.Process(178951) #实例化一个进程对象,参数为进程pid
Out[3]: psutil.Process(pid=178951, name='nginx', status='sleeping', started='2025-02-05 16:02:15')
In [5]: p.name() #进程名
Out[5]: 'nginx'
In [6]: p.exe() #进程bin路径
Out[6]: '/usr/sbin/nginx'
In [7]: p.cwd() #进程的工作目录
Out[7]: '/'
In [8]: p.status() #进程状态
Out[8]: 'sleeping'
In [9]: p.create_time() #进程创建时间
Out[9]: 1738742535.53
In [10]: p.uids()
Out[10]: puids(real=0, effective=0, saved=0)
In [11]: p.gids()
Out[11]: pgids(real=0, effective=0, saved=0)
In [12]: p.cpu_times() #进程的cpu时间,包括user,system
Out[12]: pcputimes(user=0.0, system=0.0, children_user=0.0, children_system=0.0, iowait=0.0)
In [13]: p.cpu_affinity() #进程的cpu亲和度
Out[13]: [0, 1]
In [14]: p.memory_percent() #进程内存利用率
Out[14]: 0.09876393318608247
In [15]: p.memory_info() #进程内存的rss,vms信息(进程的物理内存和逻辑内存)
Out[15]: pmem(rss=1732608, vms=56537088, shared=20480, text=786432, lib=0, data=1482752, dirty=0)
In [16]: p.io_counters() #进程的读写情况
Out[16]: pio(read_count=0, write_count=0, read_bytes=0, write_bytes=0, read_chars=0, write_chars=0)
In [17]: p.connections() #返回打开进程的socket列表
<ipython-input-17-d50301053d22>:1: DeprecationWarning: connections() is deprecated and will be removed; use net_connections() instead
p.connections()
Out[17]:
[pconn(fd=6, family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, laddr=addr(ip='0.0.0.0', port=80), raddr=(), status='LISTEN'),
pconn(fd=7, family=<AddressFamily.AF_INET6: 10>, type=<SocketKind.SOCK_STREAM: 1>, laddr=addr(ip='::', port=80), raddr=(), status='LISTEN')]
In [18]: p.num_threads() #进程打开的线程数
Out[18]: 1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」