介绍一下 threading 和 tkinter
“新人报道”
新人报道
Tkinter是python的标准GUI库,python使用Tkinter可以快速的创建GUI应用程序
https://www.runoob.com/python/python-gui-tkinter.html
from tkinter import messagebox #提示框模块 import tkinter as tk #将tkinter命名为tk top = tk.Tk() #进入消息循环 top.mainloop()
threading
threading是py中用于多线程编程的内置模块,用于创建和管理线程。
import threading # 定义一个函数作为线程的执行体 def worker(): print("Thread started") # 执行一些耗时操作 for i in range(5): print(f"Working... {i}") print("Thread finished") # 创建一个线程对象 thread = threading.Thread(target=worker) # 启动线程 thread.start() # 等待线程结束 thread.join() print("Main thread finished") -------------------------------------------- 输出示例: Thread started Working... 0 Working... 1 Working... 2 Working... 3 Working... 4 Thread finished Main thread finished --------------------------------------------- 基本用法: import threading from selenium.webdriver.common.by import By from selenium import webdriver import time def admin_login(url, username, password): driver = webdriver.Chrome() driver.get(url) driver.find_element(By.XPATH, "//input[@placeholder='请输入用户名']").send_keys(username) driver.find_element(By.XPATH, "//input[@placeholder='请输入密码']").send_keys(password) driver.find_element(By.XPATH, "//button[contains(.,'登录')]").click() time.sleep(1) # 手动关闭页面才能停止自动化 try: while True: time.sleep(1) except KeyboardInterrupt: pass driver.quit() def safe_admin_click(): url = entry.get() username = "xxxxxx" password = "xxxxxx" # 1.创建并启动线程来运行 Selenium 脚本 t = threading.Thread(target=admin_login, args=(url, username, password)) #target后跟函数名,args后跟传参 # 2.启动线程 t.start() #3.等待线程完成 t.join() ----------------------------------------------------- 4.传递参数给线程函数 def test(name): print(f"Hello,{name}") # 创建带参数的线程 thread = threading.Thread(target=test,args=("Mason",)) ----------------------------------------------------- 5.设置线程名称 thread = threading.Thread(target=test,name="test") ----------------------------------------------------- 6.使用锁保护共享资源 # 创建锁对象 lock = threading.Lock() def increment(): # counter 为全局变量 global counter #获取锁 lock.acquire() try: counter += 1 finally: #释放锁 lock.release() #创建多个线程并启动 threads = [] for _ in range(10): t = threading.Thread(target=increment) t.start t.append(thread) # 等待所有线程完成 for t in threads: t.join() # 输出结果可能小于100,因为没有保护共享资源 print(counter)
大佬
新人就搞这个?这哪里是新人,这是大佬
这个能是心热?这不是大佬吗!