pypi

chardet

猜测字符编码

pip3 install chardet

import chardet

data = '测试'.encode('utf-8')
# {'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}
print(chardet.detect(data))

data = b'test'
# {'encoding': 'ascii', 'confidence': 1.0, 'language': ''}
print(chardet.detect(data))

psutil

使用Python来编写日常运维脚本可以使用psutil模块

import psutil

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

# 物理内存和交换内存信息
print(psutil.virtual_memory())
print(psutil.swap_memory())

case_convert

驼峰、蛇形、帕斯卡等互转

from case_convert import camel_case, kebab_case, pascal_case, snake_case, upper_case

text = 'hello_world'

print(camel_case(text))     # helloWorld
print(kebab_case(text))     # hello-world
print(pascal_case(text))    # HelloWorld
print(snake_case(text))     # hello_world
print(upper_case(text))     # HELLO_WORLD

tkinter

在Python中,可以使用tkinter模块来创建GUI应用程序

import tkinter as tk

# 创建主窗口对象
root = tk.Tk()

# 创建标签和输入框对象
label = tk.Label(root, text="请输入姓名:")

entry = tk.Entry(root)

# 将标签和输入框添加到主窗口中
label.pack()
entry.pack()


# 定义按钮点击事件处理函数
def submit():
    # 从输入框获取用户输入的值
    name = entry.get()
    # 在标签中显示用户输入的值
    label.config(text=f"你好, {name}!")


# 创建按钮对象并绑定事件处理函数
button = tk.Button(root, text="Submit", command=submit)

# 将按钮添加到主窗口中
button.pack()

# 运行主循环
root.mainloop()

pynput

模拟键盘、鼠标事件

from pynput.keyboard import Controller as KB  # 控制键盘输入
from pynput.keyboard import Key
from pynput.mouse import Controller, Button  # 控制鼠标点击
import time


# 键盘输入
def key_board_input(string):
    keyboard = KB()
    keyboard.type(string)


# 按下回车
def enter():
    keyboard = KB()  # type: KB
    keyboard.type([Key.enter])


# 鼠标点击
def mouse_click():
    mouse = Controller()
    mouse.press(Button.left)
    mouse.release(Button.left)

# 延迟5秒,把光标移动到想要移动的地方
time.sleep(5)
# 输入内容
key_board_input("ls")
# 敲击回车
enter()

pyautogui

Python模拟界面操作,使用起来比pynput更方便


import pyautogui

# 获取屏幕宽度、高度
screenWidth, screenHeight = pyautogui.size()

# 获取鼠标x轴、y轴
currentMouseX, currentMouseY = pyautogui.position()

# 移动鼠标到100,150处
pyautogui.moveTo(100, 150)

# 鼠标单击
pyautogui.click()

# 移动鼠标到100,200处并单击
pyautogui.click(100, 200)

# 鼠标在当前位置向右移动400
pyautogui.move(400, 0)

# 鼠标双击
pyautogui.doubleClick()

# 鼠标将在2秒内从当前位置移动到目标位置(500, 500),鼠标的位置会以easeInOutQuad函数定义的缓动函数进行变化,即先加速后减速,使得鼠标的移动过程更加平滑自然
pyautogui.moveTo(500, 500, duration=2, tween=pyautogui.easeInOutQuad)

# 输入hello word!,输入的时候每个字符间隔0.25秒
pyautogui.write('Hello world!', interval=0.25)

# 按下ese键盘,pyautogui.KEY_NAMES可以看到所有的键
pyautogui.press('esc')

# 按住shift不放,然后按4下左方向键键
with pyautogui.hold('shift'):
    pyautogui.press(['left', 'left', 'left', 'left'])

# 快捷键结合
pyautogui.hotkey('ctrl', 'c')

# 弹出信息
pyautogui.alert(
    'This is the message to display.')

配合剪切板使用

import pyautogui
import pyperclip

test = [
    '今天星期1',
    '今天星期2',
    '今天星期3',
    '今天星期4',
    '今天星期5',
    '今天星期6',
    '今天星期7',
]


def type_in(msg):
    pyperclip.copy(i)
    pyautogui.hotkey("command", "v")
    pyautogui.press("enter")
    return True


pyautogui.moveTo(451, 109)
pyautogui.click()

for i in test:
    type_in(i)

二维码

去官网下载 zbar

windows下载好以后,直接将zbar.exe放到环境变量的path中即可

pip install qrcode

pip install pyzbar

生成二维码

import qrcode
from PIL import Image

# 要编码的数据
data = "aaabbbccc"

# 创建二维码生成器
qr = qrcode.QRCode(
    version=1,  # 二维码的版本,范围从1到40,数字越大,二维码越复杂
    error_correction=qrcode.constants.ERROR_CORRECT_L,  # 容错级别
    box_size=10,  # 二维码每个格子的像素大小
    border=4,  # 二维码与边框之间的距离
)

# 添加数据到二维码
qr.add_data(data)
qr.make(fit=True)

# 创建二维码图片
img_qr = qr.make_image(fill_color="black", back_color="white")

# 读取底图
img_background = Image.open("background.jpg")

# 计算二维码图片的大小和位置
# qr_width, qr_height = img_qr.size
# background_width, background_height = img_background.size

# 把二维码放左上方
qr_x = 10
qr_y = 10

# 粘贴二维码到底图上
img_background.paste(img_qr, (qr_x, qr_y))

# 保存最终的图片
img_background.save("output.png")

识别二维码

from PIL import Image
from pyzbar.pyzbar import decode


def decode_qr_codes(image_path):
    # 打开图片
    image = Image.open(image_path)
    # 将图片转换为RGB,因为pyzbar需要RGB格式的图片
    image = image.convert("RGB")

    # 解码图片中的二维码
    decoded_objects = decode(image)

    # 打印解码结果
    for obj in decoded_objects:
        # 二维码的数据
        print("二维码数据:", obj.data.decode("utf-8"))
        # 二维码的位置信息
        print("二维码位置:", obj.rect)


# 调用函数并传入图片路径
decode_qr_codes("./input.jpg")

results matching ""

    No results matching ""