当前位置: 首页 > news >正文

Python自动化模块:开启高效编程新时代

一、写在前面

在数字化时代,自动化技术已成为提高效率、降低成本的关键手段。Python 作为一种简洁、高效且功能强大的编程语言,凭借其丰富的库和框架,在自动化领域占据了举足轻重的地位,成为众多开发者的首选工具之一。从简单的文件操作、数据处理,到复杂的网络爬虫、机器学习任务,Python 都能轻松应对,以优雅的代码实现各种自动化需求。无论是企业级应用,还是个人日常任务,Python 都展现出了无可比拟的优势。接下来,让我们一同探索 Python 那些常用的自动化模块,解锁 Python 自动化的强大力量,开启高效编程之旅 。

二、Python 自动化模块概述

Python 自动化模块是一系列预先编写好的库和工具,它们为开发者提供了丰富的功能和接口,能够让 Python 程序模拟人类操作,自动执行各种任务,从而极大地提高工作效率。这些模块通常围绕特定的应用领域或任务类型设计,涵盖了从简单的文件和系统操作,到复杂的 Web 交互和数据处理等各个方面。例如,在 Web 自动化中,Selenium 库允许 Python 代码控制浏览器,模拟用户进行网页浏览、表单填写、按钮点击等操作,这对于自动化测试、数据抓取等任务非常有用;在桌面自动化领域,PyAutoGUI 模块能够模拟鼠标和键盘输入,实现对桌面应用程序的自动化操作,如自动生成报告、管理文件和文件夹等 。

Python 自动化模块的优势众多。首先,它们具备高度的灵活性和可定制性,开发者可以根据具体需求,有针对性地选择和组合不同的模块,轻松实现各种复杂的自动化任务。其次,Python 丰富的库和框架生态系统为自动化开发提供了强大的支持,大量成熟的工具和算法可供直接使用,减少了开发的时间和工作量。再者,Python 语言本身简洁易懂,其代码可读性强,使得编写和维护自动化脚本变得相对容易,即使对于初学者来说也能够快速上手。另外,Python 自动化模块具有良好的跨平台兼容性,能够在 Windows、MacOS、Linux 等多种操作系统上运行,大大拓宽了其应用范围 。

在桌面自动化方面,自动化报告生成是常见的应用场景之一。通过 Python 自动化模块,可以从多个数据源收集数据,按照预定的格式和模板自动生成报告,节省了大量手动整理和编写报告的时间。在文件和文件夹管理中,能够实现自动备份、移动、重命名等操作,提高文件管理的效率和准确性。比如,企业中的文档管理系统可以利用 Python 自动化模块,定期对重要文件进行备份,并按照一定的规则进行分类和归档 。

系统管理自动化也是 Python 自动化模块的重要应用领域。在服务器配置方面,通过 Python 脚本可以自动完成服务器的初始化配置、软件安装和更新等任务,确保服务器环境的一致性和稳定性。监控和日志分析是系统管理中的关键环节,Python 自动化模块能够实时收集系统日志信息,对其进行分析和处理,及时发现潜在的问题和安全隐患,并发出警报通知管理员。自动化备份功能则可以定期对关键数据和文件进行备份,保障数据的安全性,防止数据丢失 。

自动化数据分析与可视化在当今的数据驱动时代也具有重要意义。Python 拥有强大的数据处理和可视化库,如 Pandas、NumPy、Matplotlib 等。借助这些库,能够自动化地进行数据分析,从海量的数据中提取有价值的信息,为决策提供支持。同时,将分析结果以直观的图表和报告形式呈现出来,使数据更加易于理解和解读。例如,企业在进行市场分析时,可以利用 Python 自动化模块对销售数据、用户行为数据等进行分析,生成可视化的报表,帮助管理层更好地了解市场动态和用户需求 。

自动化办公任务也是 Python 自动化模块的常见应用场景。在邮件自动化方面,通过 Python 脚本可以自动发送邮件,处理邮件中的附件或链接,实现邮件的批量发送和自动回复。在自动化文档处理中,能够生成、修改、合并和转换文档,如将多个 Word 文档合并成一个,或者将 Excel 数据转换为 PDF 报告。自动化会议安排功能则可以自动创建和发送会议邀请,跟踪会议日程,提高办公效率 。

三、常用自动化模块详解

(一)Selenium——Web 自动化的得力助手

Selenium 是一款广泛应用于 Web 自动化领域的强大工具,它能够模拟用户在浏览器中的各种操作,使 Web 应用程序的自动化测试、数据抓取以及自动化任务执行变得轻而易举。

Selenium 的功能十分强大,它支持在多种主流浏览器上运行,如 Chrome、Firefox、Safari 和 IE 等,无论用户使用何种浏览器,Selenium 都能完美适配,确保自动化操作的一致性和兼容性。此外,Selenium 具备跨平台特性,可在 Windows、MacOS 和 Linux 等不同操作系统上稳定运行,这使得开发者能够在不同的开发环境中灵活运用 Selenium 进行 Web 自动化开发。

Selenium 在实际应用中有着广泛的使用场景。在自动化测试方面,它可以模拟用户与 Web 页面的交互,如点击按钮、填写表单、切换页面等,帮助开发者快速有效地验证 Web 应用程序的功能是否正常,大大提高了测试效率和准确性 。在数据抓取领域,Selenium 能够处理 JavaScript 动态加载的页面内容,通过模拟用户滚动页面、点击加载更多按钮等操作,获取到完整的网页数据,为数据分析和挖掘提供了有力支持。对于需要频繁进行自动化登录的场景,Selenium 可以编写脚本自动输入用户名和密码,完成登录操作,节省了大量的时间和精力 。

下面通过一些代码示例来展示 Selenium 的基本用法:

from selenium import webdriverfrom selenium.webdriver.common.by import Byimport time# 初始化浏览器驱动,这里以Chrome为例driver = webdriver.Chrome()# 打开网页driver.get("https://www.example.com")# 元素定位,通过元素的id查找元素element = driver.find_element(By.ID, "element_id")# 操作表单,输入文本input_box = driver.find_element(By.NAME, "input_name")input_box.send_keys("Hello, Selenium!")# 点击按钮button = driver.find_element(By.CSS_SELECTOR, "button.css_selector")button.click()# 等待一段时间,以便观察操作结果time.sleep(3)# 关闭浏览器driver.quit()

首先通过webdriver.Chrome()初始化了 Chrome 浏览器驱动,然后使用driver.get()方法打开指定的网页。通过driver.find_element()方法,结合不同的定位策略(如 ID、NAME、CSS_SELECTOR 等)来查找页面上的元素。找到输入框元素后,使用send_keys()方法输入文本;找到按钮元素后,使用click()方法模拟点击操作。最后,使用time.sleep()方法暂停 3 秒,以便观察操作结果,再通过driver.quit()关闭浏览器 。

(二)PyAutoGUI—— 桌面自动化的利器

PyAutoGUI 是 Python 中一款出色的桌面自动化模块,它赋予了 Python 程序控制鼠标和键盘的能力,使得对桌面应用程序的自动化操作变得轻松简单。

PyAutoGUI 的功能特点鲜明,它能够精确地模拟鼠标的移动、点击、拖动等操作,以及键盘的按键输入、组合键操作等,就如同真实用户在手动操作一般。该模块具有简单易用的 API,开发者只需编写少量代码,就能实现复杂的桌面自动化任务。而且,PyAutoGUI 具备跨平台性,无论是 Windows、MacOS 还是 Linux 系统,它都能稳定运行,为不同操作系统的用户提供一致的自动化体验 。

在实际应用中,PyAutoGUI 有着广泛的使用场景。在自动化报告生成方面,它可以模拟用户在文档编辑软件(如 Word、Excel)中的操作,自动填充数据、生成图表、设置格式等,快速生成专业的报告。在文件和文件夹管理中,PyAutoGUI 能够实现自动创建文件夹、复制文件、重命名文件等操作,提高文件管理的效率。对于 GUI 应用程序的测试,PyAutoGUI 可以模拟用户与应用程序的交互,进行功能测试和界面测试,确保应用程序的稳定性和易用性 。

以下是一些 PyAutoGUI 的示例:

import pyautoguiimport time# 模拟鼠标点击pyautogui.click(100, 100) # 点击坐标(100, 100)处# 模拟键盘输入pyautogui.typewrite("Hello, PyAutoGUI!") # 输入字符串# 模拟组合键操作,按下Ctrl+Cpyautogui.hotkey('ctrl', 'c')# 窗口操作,最大化当前窗口pyautogui.getActiveWindow().maximize()# 等待一段时间,以便观察操作结果time.sleep(3)

在这段代码中,pyautogui.click()方法用于模拟鼠标点击指定坐标位置;pyautogui.typewrite()方法用于模拟键盘输入字符串;pyautogui.hotkey()方法用于模拟组合键操作,这里模拟了按下 Ctrl+C 的操作;pyautogui.getActiveWindow().maximize()方法用于最大化当前活动窗口。最后同样使用time.sleep()方法暂停 3 秒,以便观察操作结果 。

(三)Paramiko—— 远程系统管理的桥梁

Paramiko 是 Python 的一个基于 SSH 协议的模块,它为 Python 程序提供了连接远程服务器、执行命令以及传输文件的功能,是实现远程系统管理自动化的重要工具。

Paramiko 的功能强大且安全可靠。它基于 SSH 协议,保证了与远程服务器通信的安全性,有效防止数据泄露和非法访问。通过 Paramiko,开发者可以轻松地建立与远程服务器的连接,并在远程服务器上执行各种命令,如系统管理命令、文件操作命令等。同时,Paramiko 还支持文件的上传和下载,方便在本地和远程服务器之间进行数据传输 。

在实际应用中,Paramiko 有着广泛的用途。在服务器配置方面,它可以自动化地完成服务器的初始化配置,如安装软件包、设置系统参数等,确保服务器环境的一致性和稳定性。在批量文件传输场景中,Paramiko 能够将本地的文件批量上传到远程服务器,或者从远程服务器下载大量文件到本地,提高数据传输的效率。对于需要在远程服务器上执行命令的任务,如监控服务器状态、执行定时任务等,Paramiko 可以通过编写 Python 脚本实现自动化执行 。

下面是一些 Paramiko 的示例:

import paramiko# 远程连接服务器ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect('remote_server_ip', 22, 'username', 'password')# 执行命令stdin, stdout, stderr = ssh.exec_command('ls -l')print(stdout.read().decode('utf-8'))# 上传文件sftp = ssh.open_sftp()sftp.put('local_file.txt','remote_file.txt')sftp.close()# 下载文件sftp = ssh.open_sftp()sftp.get('remote_file.txt', 'local_file.txt')sftp.close()# 关闭连接ssh.close()

首先创建了一个SSHClient对象,并设置了缺失主机密钥的策略为自动添加。然后使用connect()方法连接到远程服务器,需要提供服务器的 IP 地址、端口号、用户名和密码。连接成功后,使用exec_command()方法在远程服务器上执行ls -l命令,并通过stdout.read()读取命令执行结果,再使用decode('utf-8')将结果解码为字符串进行打印。接着通过open_sftp()方法打开 SFTP 连接,使用put()方法上传本地文件到远程服务器,使用get()方法从远程服务器下载文件到本地。最后,使用close()方法关闭 SFTP 连接和 SSH 连接 。

(四)Schedule—— 定时任务的调度者

Schedule 是一个简单而强大的 Python 定时任务调度模块,它允许开发者方便地安排 Python 脚本按照指定的频率执行,为自动化任务的定时执行提供了便捷的解决方案。

Schedule 的功能特点主要体现在其简单灵活的任务调度设置上。它提供了直观的 API,开发者只需几行代码,就能轻松定义任务的执行时间、频率和操作。无论是按秒、分钟、小时、天等时间间隔执行任务,还是在特定的时间点执行任务,Schedule 都能很好地满足需求 。

在实际应用中,Schedule 有着广泛的使用场景。在定时数据采集方面,它可以设置定时任务,按照设定的时间间隔自动从数据源采集数据,为数据分析和处理提供持续的数据支持。在定期备份场景中,Schedule 能够安排脚本在每天凌晨等低峰时段自动对重要数据和文件进行备份,保障数据的安全性。对于一些需要定时执行的任务,如发送定时邮件、生成定时报告等,Schedule 都能发挥重要作用,实现任务的自动化执行,节省人力和时间成本 。

以下是一个使用 Schedule 设置定时任务的示例:

import scheduleimport timedef job():print("执行定时任务...")# 每天凌晨2点执行任务schedule.every().day.at("02:00").do(job)while True:schedule.run_pending()time.sleep(1)

首先定义了一个名为job的函数,该函数代表要执行的任务,这里只是简单地打印一条信息。然后使用schedule.every().day.at("02:00").do(job)语句设置任务调度,使job函数每天凌晨 2 点执行一次。最后,通过一个while True循环和schedule.run_pending()方法,不断检查是否有任务需要执行,time.sleep(1)用于避免程序占用过多 CPU 资源 。

四、模块的选择与实践建议

(一)根据需求选择合适模块

在 Python 自动化开发中,选择合适的模块是实现高效、准确自动化任务的关键。不同的自动化场景对模块的功能和特性有着不同的要求,因此需要根据具体需求进行综合考量。

对于 Web 自动化测试和数据抓取任务,Selenium 无疑是首选模块。其强大的浏览器控制能力,能够模拟用户在浏览器中的各种操作,如点击、输入、滚动等,使得 Web 应用程序的自动化测试变得高效且准确。同时,Selenium 对各种主流浏览器的广泛支持,以及跨平台的特性,使其能够适应不同的测试环境和需求 。

当涉及到桌面应用程序的自动化操作时,PyAutoGUI 则展现出了独特的优势。无论是自动化报告生成、文件管理,还是 GUI 应用程序的测试,PyAutoGUI 都能通过模拟鼠标和键盘的输入,实现对桌面应用程序的全面控制。其简单易用的 API,使得开发者能够快速上手,编写复杂的桌面自动化脚本 。

在远程系统管理方面,Paramiko 凭借其基于 SSH 协议的安全通信功能,成为连接远程服务器、执行命令和传输文件的理想选择。无论是服务器的初始化配置、软件安装,还是日常的监控和维护,Paramiko 都能通过 Python 脚本实现自动化操作,大大提高了系统管理的效率和稳定性 。

对于需要定时执行任务的场景,Schedule 模块提供了简洁而强大的任务调度功能。开发者只需通过简单的设置,就能让 Python 脚本按照指定的时间间隔或特定时间点自动执行任务,非常适合定时数据采集、定期备份等任务 。

在实际应用中,还需要考虑模块之间的兼容性和协同工作能力。例如,在一些复杂的自动化项目中,可能需要同时使用 Selenium 和 PyAutoGUI,Selenium 负责 Web 页面的交互操作,PyAutoGUI 则负责处理桌面应用程序的相关任务,两者相互配合,共同完成自动化任务。同时,也要关注模块的更新和维护情况,选择活跃度高、社区支持好的模块,以确保在使用过程中能够及时获得技术支持和解决问题 。

(二)实践中的常见问题与解决方法

在使用 Python 自动化模块的过程中,难免会遇到一些问题。以下是一些常见问题及解决方法:

Selenium

  • 问题:元素定位失败。在使用 Selenium 进行 Web 自动化时,可能会因为页面元素的属性动态变化、页面加载不完全等原因导致元素定位失败。
  • 解决方法:可以尝试使用不同的定位策略,如通过 ID、NAME、CSS_SELECTOR、XPATH 等方式定位元素。同时,设置适当的等待时间,确保页面元素完全加载后再进行定位操作。例如,使用WebDriverWait类实现显式等待,等待元素出现后再进行后续操作 。
from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC# 等待元素出现,最长等待10秒element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "element_id")))

PyAutoGUI

  • 问题:鼠标和键盘操作不准确。由于屏幕分辨率、窗口大小等因素的影响,PyAutoGUI 的鼠标和键盘操作可能会出现不准确的情况。
  • 解决方法:在进行操作前,获取屏幕的尺寸和窗口的位置,根据实际情况调整操作的坐标。同时,可以使用pyautogui.moveTo()方法的duration参数,设置鼠标移动的时间,使操作更加平滑。例如,在点击某个按钮前,先将鼠标移动到按钮位置,再进行点击操作 。
# 获取屏幕尺寸screen_width, screen_height = pyautogui.size()# 移动鼠标到指定坐标,移动时间为1秒pyautogui.moveTo(100, 100, duration=1)pyautogui.click()

Paramiko

  • 问题:连接远程服务器失败。可能是由于网络问题、服务器地址错误、用户名或密码不正确等原因导致连接失败。
  • 解决方法:检查网络连接是否正常,确认服务器地址、用户名和密码是否正确。可以使用paramiko.ssh_exception.AuthenticationFailed和paramiko.ssh_exception.SSHException等异常处理机制,捕获连接过程中可能出现的异常,并进行相应的处理。例如,在连接失败时,提示用户检查相关信息 。
import paramikotry:ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect('remote_server_ip', 22, 'username', 'password')except paramiko.ssh_exception.AuthenticationFailed:print("用户名或密码错误,请检查!")except paramiko.ssh_exception.SSHException as e:print(f"连接失败,原因:{e}")

Schedule

  • 问题:定时任务执行不准确。可能是由于系统时间不准确、任务执行时间过长等原因导致定时任务执行不准确。
  • 解决方法:确保系统时间准确,可以使用ntplib库同步系统时间。同时,优化任务的执行代码,减少任务执行时间。如果任务执行时间过长,可以考虑将任务拆分成多个子任务,分别执行。例如,在任务执行前,先同步系统时间 。
import ntplibfrom datetime import datetime# 同步系统时间ntp_client = ntplib.NTPClient()try:ntp_response = ntp_client.request('pool.ntp.org')current_time = datetime.fromtimestamp(ntp_response.tx_time)# 设置系统时间的操作(需要管理员权限)# 这里省略具体设置系统时间的代码except ntplib.NTPException as e:print(f"同步时间失败,原因:{e}")

(三)学习资源推荐

学习 Python 自动化模块,需要丰富的学习资源作为支撑。以下是一些推荐的学习资源:

书籍

  • 《Python 编程快速上手:让繁琐工作自动化》:这本书不仅介绍了 Python 的基础知识,还通过大量实际案例详细讲解了如何使用 Python 自动化模块解决各种实际问题,如文件处理、数据采集、自动化测试等,非常适合初学者入门 。
  • 《Python 自动化运维:技术与最佳实践》:专注于 Python 在系统运维自动化方面的应用,深入介绍了 Paramiko 等模块在远程系统管理、服务器配置等方面的使用方法和最佳实践,对于从事系统运维工作的人员具有很高的参考价值 。

网站

  • 菜鸟教程:提供了全面且详细的 Python 教程,包括各个自动化模块的基础语法、使用示例和常见问题解答,内容丰富且易于理解,适合初学者快速入门 。
  • CSDN:作为专业的技术社区,CSDN 上有大量关于 Python 自动化模块的技术文章、博客和案例分享,涵盖了从基础到高级的各个层面,开发者可以在上面获取最新的技术动态和实践经验 。

社区

  • Stack Overflow:全球最大的技术问答社区之一,在上面可以搜索到关于 Python 自动化模块的各种问题及解答,与全球的开发者交流经验,解决遇到的技术难题 。
  • Python 官方社区:Python 官方的社区论坛,提供了丰富的文档、教程和讨论板块,开发者可以在这里获取最权威的技术信息,与 Python 核心开发者和其他爱好者交流 。

通过合理利用这些学习资源,开发者可以深入学习 Python 自动化模块的知识和技能,不断提升自己的自动化开发能力 。

五、总结

Python 常用自动化模块,如 Selenium、PyAutoGUI、Paramiko 和 Schedule,在各自的领域发挥着重要作用,为自动化任务提供了高效的解决方案。它们不仅提升了工作效率,还降低了人力成本,使得开发者能够更专注于核心业务逻辑的实现 。

随着技术的不断发展,Python 自动化的未来充满了无限的可能。在人工智能和机器学习领域,Python 作为主要的编程语言,将进一步推动自动化技术的发展,实现更智能化的自动化任务。在大数据处理和分析方面,Python 的自动化模块将与大数据技术深度融合,实现数据的自动化采集、清洗、分析和可视化,为企业决策提供更有力的数据支持 。

在自动化测试领域,Python 自动化模块将不断完善和扩展,支持更多类型的测试场景和测试工具,提高软件测试的效率和质量。在自动化运维方面,Python 将继续发挥其在远程系统管理、服务器监控和自动化部署等方面的优势,为企业的数字化转型提供坚实的技术保障 。

对于广大开发者来说,深入学习和应用 Python 自动化模块是提升自身技术能力和竞争力的重要途径。通过不断探索和实践,我们可以发现更多 Python 自动化的应用场景,创造出更多有价值的自动化解决方案 。

希望本文能够帮助读者对 Python 常用自动化模块有更深入的了解,激发大家在自动化领域的探索热情,共同推动 Python 自动化技术的发展和应用 。

相关文章:

Python自动化模块:开启高效编程新时代

一、写在前面 在数字化时代,自动化技术已成为提高效率、降低成本的关键手段。Python 作为一种简洁、高效且功能强大的编程语言,凭借其丰富的库和框架,在自动化领域占据了举足轻重的地位,成为众多开发者的首选工具之一。从简单的文…...

Android7 Input(二)Linux 驱动层输入事件管理

概述 在Linux系统中,将键盘,鼠标,触摸屏等这类交互设备交由Linux Input子系统进行管理,Linux Input驱动子系统由于具有良好的和用户空间交互的接口。因此Linux Input驱动子系统,不止于只管理输入类型的设备。也可以将其…...

前端给后端发送数据时都需要包含哪些内容?(HTTP请求的基本组成部分)

1 [TOC](1)一、**必须传递的内容**1. **URL(请求地址)** 二、**可选内容**1. **请求方法(HTTP Method)**2. **请求头(Headers)**3. **请求体(Body)**4. **其他配置** 技术无关 一、必…...

记录vite引入sass预编译报错error during build: [vite:css] [sass] Undefined variable.问题

vite.config.ts resolve: {alias: {: path.resolve(__dirname, src),},},css: {// css预处理器preprocessorOptions: {scss: {additionalData: use "/assets/styles/block.scss" as *;,}}},block.scss $colorGreen: #00ff00;index.vue :v-deep .font-size-14{colo…...

智慧运维平台:赋能未来,开启高效运维新时代

在当今数字化浪潮下,企业IT基础设施、工业设备及智慧城市系统的复杂度与日俱增,传统人工运维方式已难以满足高效、精准、智能的管理需求。停机故障、低效响应、数据孤岛等问题直接影响企业运营效率和成本控制。大型智慧运维平台(AIOps, Smart…...

【log4j】配置Slf4j

配置Slf4j 引入lombok包 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.36</version><scope>provided</scope> </dependency>引入log4j相关api <dependency…...

静态网页应用开发环境搭建实战教程

1. 前言 静态网页开发是前端工程师的基础技能之一&#xff0c;无论是个人博客、企业官网还是简单的Web应用&#xff0c;都离不开HTML、CSS和JavaScript。搭建一个高效的开发环境&#xff0c;能够极大提升开发效率&#xff0c;减少重复工作&#xff0c;并优化调试体验。 本教程…...

AP 场景架构设计(一) :OceanBase 读写分离策略解析

说明&#xff1a;本文内容对应的是 OceanBase 社区版&#xff0c;架构部分不涉及企业版的仲裁副本功能。OceanBase社区版和企业版的能力区别详见&#xff1a; 官网链接。 概述​ 当两种类型的业务共同运行在同一个数据库集群上时&#xff0c;这对数据库的配置等条件提出了较高…...

未来村庄智慧灯杆:点亮乡村智慧生活​

在乡村振兴与数字乡村建设的时代进程中&#xff0c;未来村庄智慧灯杆凭借其多功能集成与智能化特性&#xff0c;已成为乡村基础设施建设领域的崭新焦点&#xff0c;为乡村生活带来了前所未有的便利&#xff0c;推动着乡村生活模式的深刻变革。​ 多功能集成&#xff1a;一杆多能…...

MySQL基础语法DDLDML

目录 #1.创建和删除数据库 ​#2.如果有lyt就删除,没有则创建一个新的lyt #3.切换到lyt数据库下 #4.创建数据表并设置列及其属性,name是关键词要用name包围 ​编辑 #5.删除数据表 #5.查看创建的student表 #6.向student表中添加数据,数据要与列名一一对应 #7.查询studen…...

利用 VSCode 配置提升 vibe coding 开发效率

利用 VSCode 配置提升 vibe coding 开发效率 Vibe Coding&#xff08;氛围编程&#xff09;是一种基于AI的编程方法&#xff0c;其核心在于通过自然语言描述软件需求&#xff0c;再由大规模语言模型&#xff08;LLM&#xff09;自动生成代码&#xff0c;从而实现对传统手写编程…...

使用 Chromedp 监听网页请求和响应

使用 Chromedp 监听网页请求和响应 在进行网络爬虫的时候&#xff0c;有很多网站都有反爬机制&#xff0c;比如你想抓点数据&#xff0c;结果发现每次请求都带一堆奇奇怪怪的参数 —— 什么 timestamp 签名、AES 加密的字段&#xff0c;还有各种 Token 令牌&#xff0c;跟密码…...

AB包介绍及导出工具实现+AB包资源简单加载

Resource原理 项目中建立Resources目录&#xff0c;资源导入内部 生成项目包 资源文件存储路径 结论&#xff1a;存储在Resources下的资源&#xff0c;最终会存储在游戏的主体包中&#xff0c;发送给用户&#xff0c;手机系统上&#xff0c;如果需要做资源的更新&#xff0c;是…...

TCP/IP协议簇

文章目录 应用层http/httpsDNS补充 传输层TCP1. 序列号与确认机制2. 超时重传3. 流量控制&#xff08;滑动窗口机制&#xff09;4. 拥塞控制5. 错误检测与校验6. 连接管理总结 网络层ARP**ARP 的核心功能**ARP 的工作流程1. ARP 请求&#xff08;Broadcast&#xff09;2. ARP 缓…...

vector的模拟实现01

文章目录 vector的模拟实现构造函数析构函数迭代器容量sizecapacityreverse 遍历下标[] 修改push_backpop_backinsert 结语 我们大家有又见面了&#xff0c;给生活加点</font color red>impetus&#xff01;&#xff01;开启今天的编程之路 今天我们来学习vector。了解一…...

信息学奥赛一本通 1609:【例 4】Cats Transport | 洛谷 CF311B Cats Transport

【题目链接】 ybt 1609&#xff1a;【例 4】Cats Transport 洛谷 CF311B Cats Transport 【题目考点】 1. 动态规划&#xff1a;斜率优化动规 【解题思路】 解法1&#xff1a;设a点的前缀和 输入的 d d d序列是从 d 2 d_2 d2​到 d n d_n dn​&#xff0c;共n-1个数字。人…...

shared_ptr和 weak_ptr的详细介绍

关于 shared_ptr 和 weak_ptr 的详细介绍及使用示例&#xff1a; 1. shared_ptr&#xff08;共享所有权智能指针&#xff09; 核心特性 引用计数&#xff1a;记录当前有多少个 shared_ptr 共享同一个对象。自动释放&#xff1a;当引用计数归零时&#xff0c;自动释放对象内存…...

electron打包vue2项目流程

1&#xff0c;安装一个node vue2 的项目 2&#xff0c;安装electron&#xff1a; npm install electron -g//如果安装还是 特比慢 或 不想安装cnpn 淘宝镜像查看是否安装成功&#xff1a;electron -v 3&#xff0c;进入到项目目录&#xff1a;cd electron-demo 进入项目目录…...

Baklib驱动企业知识管理数字化转型

Baklib驱动知识资产激活 在信息碎片化与数据爆炸的产业环境下&#xff0c;企业知识中台正成为重构组织智慧的核心枢纽。Baklib通过构建全生命周期知识管理模型&#xff0c;将分散于邮件、文档及协作系统的非结构化数据转化为可检索、可分析的标准化资产。其内置的智能分类引擎…...

Elasticsearch 高级

Elasticsearch 高级 建议阅读顺序&#xff1a; Elasticsearch 入门Elasticsearch 搜索Elasticsearch 搜索高级Elasticsearch高级&#xff08;本文&#xff09; 1. nested 类型 1.1 介绍 Elasticsearch 中的 nested 类型允许你在文档内存储复杂的数据结构&#xff0c;比如一个…...

1--当「穷举」成为艺术:CTF暴力破解漏洞技术从入门到入刑指南(知识点讲解版)

当「穷举」成为艺术&#xff1a;CTF暴力破解漏洞技术从入门到入刑指南 引言&#xff1a;论暴力破解的哲学意义 “世界上本没有漏洞&#xff0c;密码设得简单了&#xff0c;便成了漏洞。” —— 鲁迅&#xff08;并没有说过&#xff09; 想象你是个不会撬锁的小偷&#xff0c;面…...

jdk 支持路线图

https://www.oracle.com/java/technologies/java-se-support-roadmap.html 按照路线图得知&#xff0c;在2025.09 发布openjdk 25&#xff0c;是一个LTS版本。...

VsCode启用右括号自动跳过(自动重写) - 自录制gif演示

VsCode启用右括号自动跳过(自动重写) - 自录制gif演示 前言 不知道大家在编程时候的按键习惯是怎样的。输入完左括号后编辑器一般会自动补全右括号&#xff0c;输入完左括号的内容后&#xff0c;是按→跳过右括号还是按)跳过右括号呢&#xff1f; for (int i 0; i < a.s…...

Android设计模式之模板方法模式

一、定义&#xff1a; 定义一个操作中的算法的框架&#xff0c;而将一些步骤延迟到子类中&#xff0c;使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 二、结构&#xff1a; AbstractClass抽象类&#xff1a;定义算法的骨架&#xff0c;包含模板方法和若干…...

纯个人整理,蓝桥杯使用的算法模板day1(dfs、bfs)

算法索引 dfs&#xff08;深度优先搜索&#xff09;bfs&#xff08;广度优先搜索&#xff09;迷宫树结构 dfs&#xff08;深度优先搜索&#xff09; 功能&#xff1a; 适合搜索所有的解 代码模板&#xff1a; class Solution{public void dfs(int[][] graph, int i, int j){i…...

【第34节】windows原理:PE文件的导出表和导入表

目录 一、导出表 1.1 导出表概述 1.2 说明与使用 二、导入表 2.1 导入表概述 2.2 说明与使用 一、导出表 1.1 导出表概述 &#xff08;1&#xff09;导出行为和导出表用途&#xff1a;PE文件能把自身的函数、变量或者类&#xff0c;提供给其他PE文件使用&#xff0c;这…...

Spring Boot事务管理详解(附银行转账案例)

一、事务基础概念 事务的ACID特性&#xff1a; 原子性&#xff08;Atomicity&#xff09;&#xff1a;操作要么全部成功&#xff0c;要么全部失败一致性&#xff08;Consistency&#xff09;&#xff1a;数据在事务前后保持合法状态隔离性&#xff08;Isolation&#xff09;&…...

(头歌作业—python)3.2 个人所得税计算器(project)

第1关&#xff1a;个人所得税计算器 任务描述 本关任务&#xff1a;编写一个个人所得税计算器的小程序。 相关知识 个人所得税缴纳标准 2018 年 10 月 1 日以前&#xff0c;个税免征额为 3500 元/月&#xff0c;调整后&#xff0c;个税免征额为 5000 元/月&#xff0c; 7 级超…...

在一个scss文件中定义变量,在另一个scss文件中使用

_variables.scss文件 : $line-gradient-init-color: linear-gradient(90deg, #8057ff 0%, #936bff 50%, #b892ff 100%); $line-gradient-hover-color: linear-gradient(90deg, #936bff 0%, #b892ff 50%, #f781ce 100%); $line-gradient-active-color: linear-gradient(90deg, …...

【计网】网络交换技术之电路交换(复习自用)

复习自用的&#xff0c;处理得比较草率&#xff0c;复习的同学或者想看基础的同学可以看看&#xff0c;大佬的话可以不用浪费时间在我的水文上了 1.电路交换定义 电路交换是一种通信方法&#xff0c;在通信开始之前&#xff0c;源和目的地之间建立一条专用的物理路径&#xf…...

MacOS 安装open webui

open-webui 不是一个 Python 包&#xff0c;所以 pip install open-webui 会失败。它是一个独立的 Web UI 应用&#xff0c;通常通过 Docker 或 手动构建 来运行。 如何正确安装 Open WebUI&#xff1f; 你可以选择 Docker 方式&#xff08;推荐&#xff09;或 手动安装。 方法…...

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌套表格拖拽排序

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌…...

开启ipv6与关闭的区别

在运行P2P CDN时&#xff0c;开启IPv6与关闭IPv6存在以下核心区别&#xff0c;需从技术、合规、运营等维度综合评估&#xff1a; 一、性能与效率 开启IPv6的优势 更大地址空间&#xff1a;IPv6支持海量设备接入&#xff0c;解决IPv4地址枯竭问题&#xff0c;便于P2P CDN节点扩…...

Redis + Caffeine多级缓存电商场景深度解析

Redis Caffeine多级缓存 Redis Caffeine多级缓存电商场景深度解析一、实施目的二、具体实施2.1 架构设计2.2 组件配置2.3 核心代码实现 三、实施效果3.1 性能指标对比3.2 业务指标改善3.3 系统稳定性 四、关键策略4.1 缓存预热4.2 一致性保障4.3 监控配置Prometheus监控指标 …...

Leecode Hot50

文章目录 矩阵Solution73. 矩阵置零Solution54. 螺旋矩阵Solution48. 旋转图像Solution240. 搜索二维矩阵 II二叉树二叉树的四种遍历结果Solution94. 二叉树的中序遍历Solution104. 二叉树的最大深度Solution226. 翻转二叉树Solution101. 对称二叉树Solution543. 二叉树的直径S…...

解决 Gradle 构建错误:Could not get unknown property ‘withoutJclOverSlf4J’

解决 Gradle 构建错误&#xff1a;Could not get unknown property ‘withoutJclOverSlf4J’ 在构建 Spring 源码或其他基于 Gradle 的项目时&#xff0c;可能会遇到如下错误&#xff1a; Could not get unknown property withoutJclOverSlf4J for object of type org.gradle…...

C++ 初阶总复习 (16~30)

C 初阶总复习 &#xff08;16~30&#xff09; 目的16. 2009. volatile关键字的作用17. 2010.什么是多态 简单介绍下C的多态18. 2011. 什么是虚函数 介绍下C中虚函数的原理19. 2012 构造函数可以是虚函数嘛20. 2013.析构函数一定要是虚函数嘛&#xff1f;21. 2015. 什么是C中的虚…...

TDengine 中的异常恢复

简介 本章主要介绍在 TDengine 执行命令过程中发生异常&#xff0c;如何手工终于执行的任务。可以终止连接&#xff0c;线上查询及终止事务。 如果一个事务 在一个复杂的应用场景中&#xff0c;连接和查询任务等有可能进入一种错误状态或者耗时过长迟迟无法结束&#xff0c;…...

二层框架组合实验

实验要求&#xff1a; 1,内网IP地址使用172.16.0.0/16分配 2,SW1和sw2之间互为备份 3,VRRP/STP/VLAN/Eth-trunk均使用 4,所有PC均通过DHCP获取IP地址 5,ISP只能配置IP地址 6,所有电脑可以正常访问ISP路由器环回 实验思路顺序&#xff1a; 创建vlan eth-trunk 划分v…...

IP综合实验

1.配置eth-trunk进行绑定 [LSW1]interface Eth-Trunk 0 [LSW1-Eth-Trunk0]q [LSW1]interface g0/0/2 [LSW1-GigabitEthernet0/0/2]eth-trunk 0 [LSW1-GigabitEthernet0/0/2]int g0/0/3 [LSW1-GigabitEthernet0/0/3]eth-trunk 0 [LSW1-GigabitEthernet0/0/3]display et…...

2025年信息系统与未来教育国际学术会议(ISFE 2025)

基本信息 官网&#xff1a;www.icedcs.net 时间&#xff1a;2025年4月18-20日 地点&#xff1a;中国-深圳 简介 2025年信息系统与未来教育国际学术会议&#xff08;ISFE 2025&#xff09;作为第二届粤港澳大湾区教育数字化与计算机科学国际学术会议&#xff08;EDCS 2025&…...

nacos 外置mysql数据库操作(docker 环境)

目录 一、外置mysql数据库原因&#xff1a; 二、数据库准备工作 三、构建nacos容器 四、效果展示 一、外置mysql数据库原因&#xff1a; 想知道nacos如何外置mysql数据库之前&#xff0c;我们首先要知道为什么要外置mysql数据库&#xff0c;或者说这样做有什么优点和好处&am…...

Windows 10 ARM64平台MFC串口程序开发

Windows 10 IoT ARM64平台除了支持新的UWP框架&#xff0c;也兼容支持老框架MFC。使得用户在Windows 10 IoT下可以对原MFC工程进行功能升级&#xff0c;不用在新框架下重写整个工程。熟悉MFC开发的工程师也可以在Windows 10 IoT平台下继续使用MFC进行开发。 本文展示MFC串口程序…...

怎么使用pm2启动和暂停后端程序(后端架构nodejs+koa)

首先查看自己的pm2进程 pm2 list 或者 pm2 status 如果什么进程都没有&#xff0c;但是你确实有后端程序运行在服务器上&#xff0c;使用以下查看pm2程序的启动用户 ps aux | grep pm2就可以看到具体的用户和进行的信息 接着转换到你要操作的pm2的进程用户下 sudo su - …...

AI人工智能-Jupyter NotbookPycharm:Py开发

安装 命令&#xff1a; pip install jupyter 启动 命令&#xff1a; jupyter notebook 启动成功后&#xff0c;下面网址会默认自动打开当前用户的根目录。 其实这个页面显示的内容&#xff0c;是我们电脑目录C:\Users\当前用户\下的文件夹 我们平常做实验&#xff0c;希望在…...

uniapp-小程序地图展示

一、当前页面直接获取 <view class"map"><map id"myMap" style"width: 100%; height: 40vh;" :latitude"latitude":longitude"longitude" :markers"markers" :scale"scale" :show-location&qu…...

使用 Python 进行链上数据监控:让区块链数据触手可及

使用 Python 进行链上数据监控:让区块链数据触手可及 区块链技术正以前所未有的速度改变着各行各业,特别是在金融、供应链、物联网和智能合约等领域的应用,已经成为了一种新常态。然而,随着区块链网络的快速扩展和去中心化特性的不断强化,数据的可视化与监控变得愈发重要…...

CentOS 7 磁盘及分区管理笔记

一、查看磁盘信息 1. lsblk 命令 作用&#xff1a;列出系统中所有的块设备&#xff08;包括磁盘、分区等&#xff09;及其相关信息&#xff0c;如设备名称、大小、类型等。 命令格式&#xff1a;lsblk 示例&#xff1a; lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sd…...

python基础学习二(列表及字典的使用)

文章目录 列表列表的创建获取列表中的多个元素判断列表中元素是否存在列表元素的添加操作列表元素的删除操作列表元素的修改列表的排序列表生成式 字典字典的创建字典的常规操作字典的常用操作字典的视图操作字典元素的遍历字典的特点字典的生成式 列表 一个对象由id&#xff0…...

【NLP 50、损失函数 KL散度】

目录 一、定义与公式 1.核心定义 2.数学公式 3.KL散度与交叉熵的关系 二、使用场景 1.生成模型与变分推断 2.知识蒸馏 3.模型评估与优化 4.信息论与编码优化 三、原理与特性 1.信息论视角 ​2.优化目标 3.​局限性 四、代码示例 代码运行流程 核心代码解析 抵达梦想靠的不是狂热…...