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)

results matching ""

    No results matching ""