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)