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

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 作为一种简洁、高效且功能强大的编程语言,凭借其丰富的库和框架,在自动化领域占据了举足轻重的地位,成为众多开发者的首选工具之一。从简单的文…...

【蓝桥杯速成】| 15.完全背包

题目:携带研究材料 问题描述 52. 携带研究材料(第七期模拟笔试) 小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研…...

C++:allocator类(动态数组续)

1.为什么需要 allocator? 在 C 中,动态内存管理通常通过 new 和 delete 完成: int* p new int; // 分配内存 构造对象 delete p; // 析构对象 释放内存 但 new 和 delete 有两个问题: 耦合性:将内…...

libva基础

Libva(Lib Video Acceleration)是一个开源的库,实现了 **VA-API**(Video Acceleration API),旨在为视频处理提供跨平台的硬件加速支持。 1、核心功能与作用 硬件加速抽象层:Libva 作为中间层&…...

【C++20】format格式化输出

C20 format格式化输出 在C20之前&#xff0c;格式化能力都依赖于三方格式化库FMT&#xff0c; 而C20 标准委员会终于在C标准库引入了格式化功能&#xff0c;从使用方式和风格来看其实就是FMT库转正了 直接使用 包含<format.h>头文件既可以直接使用&#xff0c;类似pyt…...

c++游戏开发第一期

以后我将要发c游戏开发的教程&#xff0c;可能更得比较慢。&#xff08;目测几个星期一更&#xff09;。 今天先讲个配置编译器。 我用的是Visual studio 2022和EasyX。 安装studio&#xff1a; 首先找到下载链接&#xff08;点我&#xff09;下拉找到下面图片的东西。 下完…...

Elasticsearch:人工智能时代的公共部门数据治理

作者&#xff1a;来自 Elastic Darren Meiss 人工智能&#xff08;AI&#xff09;和生成式人工智能&#xff08;GenAI&#xff09;正在迅速改变公共部门&#xff0c;从理论探讨走向实际应用。正确的数据准备、管理和治理将在 GenAI 的成功实施中发挥关键作用。 我们最近举办了…...

Web开发:数据的加密和解密

一、常见通用术语解析 加盐&#xff1a;在密码中加入随机数据&#xff0c;提高安全性。摘要&#xff1a;固定长度的输出&#xff0c;用于数据完整性验证。加密&#xff1a;将数据转换为不可读形式&#xff0c;确保安全。撞库&#xff1a;通过暴力破解比对常见密码的攻击方式。…...

低功耗LPWAN模块开发指南:远距离无线通信与边缘计算融合实战‌

在远程资产追踪、野外环境监测等场景中&#xff0c;稳定可靠的长距离通信与超低功耗是系统设计的核心挑战。eFish-SBC-RK3576通过 ‌原生双UART接口 USB OTG扩展能力‌ &#xff0c;可无缝集成主流LPWAN模组&#xff08;LoRa/NB-IoT&#xff09;&#xff0c;实现“数据采集-边…...

RHCA核心课程技术解析5:红帽高可用性集群架构与深度实践

一、红帽高可用集群架构全景 1.1 核心组件交互逻辑 graph TD A[节点1] -->|Corosync 心跳| B[节点2] A -->|Pacemaker 资源管理| C[共享存储] B --> C D[Fencing设备] -->|STONITH| A D -->|STONITH| B C -->|GFS2锁管理| A C -->|GFS2锁管理| B 1.2 集…...

Python切片中的步长秘密

Python切片中的步长秘密 大家好&#xff01;今天我们来聊聊Python切片中一个有趣的话题 - 步长&#xff08;step&#xff09;。 基本格式回顾 Python切片的完整格式是: [起点:终点:步长] 但你是否注意到,很多代码里的切片都只写了起点和终点?没错,步长是可以省略的! 步长的默认…...

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

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

【超详细教程】2025年3月最新Pytorch安装教程(同时讲解安装CPU和GPU版本)

目录 一、前言二、pytorch简介三、安装准备工作3.1、下载Anaconda 四、判断是否有NVIDIA显卡五、安装pytorch-CPU版本六、安装pytorch-GPU版本6.1、查看CUDA显卡驱动版本6.2、安装CUDA6.3、安装CuDNN&#xff08;加速器&#xff09;6.4、安装pytorch-GPU6.5 其他方法安装注意 七…...

Unity光线传播体积(LPV)技术实现详解

一、LPV技术概述 光线传播体积(Light Propagation Volumes)是一种实时全局光照技术&#xff0c;通过将场景中的间接光信息存储在3D网格中&#xff0c;实现动态物体的间接光照效果。 核心优势&#xff1a; 实时性能&#xff1a;相比传统光照贴图&#xff0c;支持动态场景 硬件…...

Git和GitCode使用(从Git安装到上传项目一条龙)

第一步 菜鸟教程-Git教程 点击上方链接&#xff0c;完成Git的安装&#xff0c;并了解Git 工作流程&#xff0c;知道Git 工作区、暂存区和版本库的区别 第二步 GitCode官方帮助文档-SSH 公钥管理 点击上方链接&#xff0c;完成SSH公钥设置 第三步&#xff08;GitCode的官方引…...

通信之光纤耦合器

以下是关于光纤耦合器的详细介绍&#xff1a; 定义与原理 - 定义&#xff1a;光纤耦合器是一种能使传输中的光信号在特殊结构的耦合区发生耦合&#xff0c;并进行再分配的器件&#xff0c;也叫分歧器、连接器、适配器、光纤法兰盘。 - 原理&#xff1a;利用不同光纤面紧邻光纤芯…...

5G核心网(5GC)开户中,DNN(Data Network Name,数据网络名称)

在5G核心网(5GC)开户中,DNN(Data Network Name,数据网络名称)是关键概念之一,以下是关于它的详细介绍: 定义 DNN是5G网络中用于标识外部数据网络的名称,相当于4G中的APN(Access Point Name),两者功能等价。 组成 DNN由两部分组成: 网络ID(NI):必选,至少包…...

OpenCV、YOLO与大模型的区别与关系

OpenCV、YOLO 和大模型的区别与关系 1. OpenCV&#xff08;Open Source Computer Vision Library&#xff09; 定位&#xff1a;开源的计算机视觉基础库。功能&#xff1a;提供传统的图像处理算法&#xff08;如图像滤波、边缘检测、特征提取&#xff09;和基础工具&#xff…...

虚拟电商-话费充值业务(二)话费充值对接供应商模块开发

一、对接供应商模块开发 供应商对接模块chongba_recharge_supplier主要负责的就是调用外部的供应商系统进行充值下单&#xff0c;这种调用是一种基于HTTP协议的调用。 此外在供应商对接模块中主要是实现的业务逻辑有&#xff1a; 1&#xff1a;余额或押金不足情况下的失败轮…...

练习题:110

目录 Python题目 题目 题目分析 需求理解 关键知识点 实现思路分析 代码实现 代码解释 函数定义&#xff1a; 计算值的总和&#xff1a; 测试函数&#xff1a; 运行思路 结束语 Python题目 题目 定义一个函数&#xff0c;接受一个字典作为参数&#xff0c;返回字…...

c#winform,倒鸭子字幕效果,typemonkey字幕效果,抖音瀑布流字幕效果

不废话 直接上效果图 C# winform 开发抖音的瀑布流字幕。 也是typemonkey插件字幕效果 或者咱再网上常说的倒鸭子字幕效果 主要功能 1&#xff0c;软件可以自定义添加字幕内容 2&#xff0c;软件可以添加字幕显示的时间区间 3&#xff0c;可以自定义字幕颜色&#xff0c;可以随…...

游戏被外挂攻破?金融数据遭篡改?AI反作弊系统实战方案(代码+详细步骤)

一、背景与需求分析 随着游戏行业与金融领域的数字化进程加速,作弊行为(如游戏外挂、金融数据篡改)日益复杂化。传统基于规则的防御手段已难以应对新型攻击,而AI技术通过动态行为分析、异常检测等能力,为安全领域提供了革命性解决方案。本文以游戏反作弊系统和金融数据安…...

晶晨S905L3A(B)-安卓9.0-开启ADB和ROOT-支持IPTV6-支持外置游戏系统-支持多种无线芯片-支持救砖-完美通刷线刷固件包

晶晨S905L3A(B)-安卓9.0-开启ADB和ROOT-支持IPTV6-支持外置游戏系统-支持多种无线芯片-支持救砖-完美通刷线刷固件包 适用型号&#xff1a;M401A、CM311-1a、CM311-1sa、B863AV3.1-M2、B863AV3.2-M、UNT403A、UNT413A、M411A、E900V22C、E900V22D、IP112H等等晶晨S905L3A(B)处…...

AI来了,新手如何着手学习软件开发?

AI时代新手学习软件开发的7步进化指南 &#xff08;附具体工具与避坑策略&#xff09; 一、建立“人机协作”学习观 AI是教练&#xff0c;不是替身 正确姿势&#xff1a;用AI辅助理解概念&#xff08;如让DeepSeek 、ChatGPT用生活案例解释递归&#xff09;&#xff0c;但坚持手…...

JDK 24 Class File API 介绍

概述 JDK 24 引入的 Class File API 提供了一套类型安全的 API 用于操作 Java 类文件。这套 API 允许我们以编程方式读取、修改和创建 Java 类文件&#xff0c;而不需要直接处理底层的字节码。 注1&#xff1a;JDK 24 已于2025年3月18日正式发布&#xff0c;Release信息参见官…...

C++23:现代C++的模块化革命与零成本抽象新高度

以下代码为伪代码&#xff0c;仅供参考 一、标准库的范式突破 1. std::expected&#xff1a;类型安全的错误处理 std::expected<DataPacket, ErrorCode> parsePacket(ByteStream& stream) {if (stream.header_valid()) return decode_packet(stream);elsereturn s…...

《K230 从熟悉到...》矩形检测

《K230 从熟悉到...》矩形检测 《庐山派 K230 从熟悉到...》矩形检测 矩形检测技术是一种广泛应用于电子图像处理的核心技术。它通过识别和分析图像中的矩形结构&#xff0c;为各种应用提供基础支持。从传统图像处理算法到现代深度学习技术&#xff0c;矩形检测的实现途径多种多…...

Unity 面向对象实战:掌握组件化设计与脚本通信,构建玩家敌人交互

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

3. 第三放平台部署deepseek

有时候我们会发现使用deepseek服务器&#xff0c;异常卡顿&#xff0c;这是由于多方面原因造成的&#xff0c;比如说访问人数过多等。想要解决这个问题&#xff0c;我们可以选择第三方平台进行部署 第三方平台 我们可以选择的第三方平台很多&#xff0c;比如硅基流动、秘塔搜索…...

【C++指针】搭建起程序与内存深度交互的桥梁(下)

&#x1f525;&#x1f525; 个人主页 点击&#x1f525;&#x1f525; 每文一诗 &#x1f4aa;&#x1f3fc; 往者不可谏&#xff0c;来者犹可追——《论语微子篇》 译文&#xff1a;过去的事情已经无法挽回&#xff0c;未来的岁月还可以迎头赶上。 目录 C内存模型 new与…...