常用第三方模块

Pillow

from PIL import Image, ImageFilter

image1=Image.open("/Users/fish/Desktop/pyTestImage.jpg")
print(image1)
print(image1.size)
print("图像尺寸为宽%s 高%s" % image1.size)
(w, h)=image1.size
image1.thumbnail((w//2, h//2))
print("调整后的图片大小%s %s" % image1.size)
image1.save("/Users/fish/Desktop/thumbnail.jpg", "jpeg")


image2=Image.open("/Users/fish/Desktop/pyTestImage.jpg")
image2=image2.filter(ImageFilter.BLUR)
image2.save("/Users/fish/Desktop/blur.jpg", "jpeg")


from PIL import Image, ImageDraw, ImageFont, ImageFilter
import random

#获取随机字母
def randomChar():
    return chr(random.randint(65,90))  #获取随机整数

#随机颜色
def randomColor1():
    return (random.randint(64,255), random.randint(64,255), random.randint(64,255))

def randomColor2():
    return (random.randint(32,127), random.randint(32,127), random.randint(32,127))

width=60*4
height=60
image=Image.new("RGB", (width, height), (255, 255, 255))
#创建font对象
font=ImageFont.truetype('Arial.ttf', 36,  layout_engine="LAYOUT_RAQM")
#创建Draw对象
draw=ImageDraw.Draw(image)
#填充每个像素
for x in range(width):
    for y in range(height):
        draw.point((x,y), fill=randomColor1())
#输出文字

for t in range(4):
    draw.text((60*t+10, 10), randomChar(), font=font, fill=randomColor2())

image.save("/Users/fish/Desktop/randomChar.jpg", "jpeg")

requests

import requests
r1=requests.get("http://www.uidt.net/")
r1.encoding = 'utf-8' 
print(r1.status_code)
print(r1.encoding)
print(r1.headers)
# 获取网页内容
with open("./douban.html", "w") as f1:
    f1.write(r1.text)


r2 = requests.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json')
# 获取请求的相应内容
print(r2.json())

chardet

用来检测编码

import chardet
# 当获得bytes时 可以推测其所用的编码

data = '离离原上草,一岁一枯荣'.encode('gbk')
result=chardet.detect(data)
print(result)
# {'encoding': 'GB2312', 'confidence': 0.7407407407407407, 'language': 'Chinese'}

psutil

这个模块可以跨平台使用
获取当前系统的CPU信息,内存信息、磁盘信息、网络信息、进程信息

#!/usr/bin/env python3

import psutil
print(psutil.cpu_count())  #CPU逻辑数量

print(psutil.cpu_count(logical=False))  #CPU物理核心数量

print(psutil.cpu_times())  #cpu的用户/系统/空闲时间
# scputimes(user=7590.65, nice=0.0, system=5399.27, idle=265297.75)

# 内存信息

vm=psutil.virtual_memory() #获取物理内存
print(vm)
# svmem(total=17179869184, available=2889986048, percent=83.2, used=12674203648, free=1946497024, active=8977154048, inactive=943489024, wired=2753560576)

swapm=psutil.swap_memory() # 交换内存
print(swapm)
# sswap(total=1073741824, used=176685056, free=897056768, percent=16.5, sin=10144088064, sout=4096)


# 磁盘信息

disk_part=psutil.disk_partitions() # 磁盘分区信息
print(disk_part)
# [sdiskpart(device='/dev/disk1s1', mountpoint='/', fstype='apfs', opts='rw,local,rootfs,dovolfs,journaled,multilabel'), sdiskpart(device='/dev/disk1s4', mountpoint='/private/var/vm', fstype='apfs', opts='rw,noexec,local,dovolfs,dontbrowse,journaled,multilabel,noatime')]

# "/"代表磁盘
disk_usage=psutil.disk_usage("/") # 磁盘使用情况 
print(disk_usage)
# sdiskusage(total=499963170816, used=175103643648, free=322010931200, percent=35.2)

disk_io=psutil.disk_io_counters() # 磁盘IO
print(disk_io)
# sdiskio(read_count=569221, write_count=820812, read_bytes=17523716096, write_bytes=19005095936, read_time=262887, write_time=473538)


net_io=psutil.net_io_counters() # 获取网络读写字节/包的个数
print(net_io)
# snetio(bytes_sent=111684608, bytes_recv=2494911488, packets_sent=1122158, packets_recv=1953957, errin=0, errout=0, dropin=0, dropout=0)
 
net_address=psutil.net_if_addrs() # 获取网络接口信息
print(net_address)

net_status=psutil.net_if_stats() # 获取网络接口状态
print("所有网络接口状态:")
print(net_status)


# net_connectinfo=psutil.net_connections() # 需要root权限 sudo执行python
# print("当前网络连接信息:")
# print(net_connectinfo)


all_pid=psutil.pids() #获取所有进程id
print(all_pid)

process=psutil.Process(11377) # 获取id对应进程
print(process.name()) # 获取对应进程名字 
# Python

print(process.exe()) #进程exe路径
# /usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python

print(process.cwd()) #进程工作目录

print(process.cmdline()) # 进程启动的命令行

print(process.ppid()) # 父进程的pid

print(process.parent()) # 父进程

print(process.children()) # 子进程列表

print(process.status()) # 进程状态

print(process.username()) # 进程用户名

print(process.create_time()) # 进程创建时间

print(process.terminal()) # 进程终端

print(process.cpu_times()) # 进程使用的cpu时间

print(process.memory_info()) # 进程使用内存

print(process.open_files()) # 进程打开的文件

print(process.connections()) # 进程相关网络连接

print(process.num_threads()) # 进程的线程数量

# print(process.threads()) # 所有线程

print(process.environ()) # 进程环境变量

print(process.terminate()) # 结束进程