Python自动化实战:4个提升效率的实用脚本技巧

方予
方予
发布时间:2026-10-15| 5人浏览过
原创

本文介绍四个Python自动化实用案例:利用PyAutoGUI模拟鼠标移动保持在线状态,使用Selenium实现网站自动登录,通过zipfile模块自动打包备份文件,以及结合PRAW库将YouTube视频自动发布至Reddit。涵盖环境配置、核心代码逻辑及关键参数说明,帮助开发者简化重复性工作流程。

自动化技术旨在释放人力,但实施过程往往需要投入时间并管理复杂的依赖关系,这本身可能是一项挑战。

Python因其广泛的兼容性成为自动化的理想选择,无论是发送HTTP请求、交互API,还是加载和管理数据库,Python都能轻松应对。

以下介绍四项基于Python的自动化操作,可协助优化各类工作流程与项目执行。

1. 模拟鼠标移动以维持Skype/Lynk在线状态

假设过去十分钟你一直在浏览社交媒体新闻,突然Lynk软件中的活动指示器变黄,提示你未在工作或未参会。

此时,喜欢监控员工的老板走近并轻拍你的肩膀。

你惊讶抬头,面对老板严厉的目光,因为他有时刻监控员工的习惯。

他问道:“我希望你放松,但请解释这个模块是如何生成的。”你强作镇定,给出了礼貌的回应。

“很好,我只是确保你集中注意力。副总裁Janice希望我们在截止日期前完成任务。”

对话结束。

如果Lynk的活动指示器没有变黄该多好?

通过搜索引擎查找脚本,你可以编写代码,每隔几分钟运行一次程序以移动鼠标,从而解决此问题。

在Skype或Lynk中使用这些鼠标和键盘移动操作,可以模拟你在工作中的活跃状态。

该自动化方案使用Python的PyAutoGUI模块。安装该模块需执行以下命令:

pip install pyautogui

Python利用屏幕坐标系控制并追踪鼠标。例如,对于1920x1080分辨率的屏幕,其坐标系布局如下:

PyAutoGUI模块提供以下核心功能:


•size():size()函数可让你了解屏幕分辨率。

import pyautogui

print(pyautogui.size())

保存为.py文件并运行,Python代码将使用size()函数输出屏幕分辨率的x、y格式数据:


•moveTo():PyAutoGUI模块中的moveTo()函数可移动鼠标。下面的代码运用了函数,该函数采用x和y的坐标以及可选的duration(持续时间)参数,使用指定的duration参数将鼠标指针从当前位置移动到x和y的坐标。

import pyautogui

print(pyautogui.size())pyautogui.moveTo(150,100, duration = 2)

运行该Python脚本后,鼠标指针将在2秒内从当前位置移动至坐标(150,100)。

除基础功能外,还可利用click和typewrite等函数实现点击和字符串输入的自动化。

这些功能有助于防止老板发现你在工作期间分心。

2. 使用Selenium自动化网站登录流程

许多网站对爬虫和程序登录持保留态度,但这仍是一项值得掌握的技能。

Selenium是一个多语言库,可用于自动化UI测试,甚至通过登录机制抓取网站数据。

学习Selenium无需掌握高深知识,只需构建一个能登录目标网站的工具即可。

使用前,需安装Chrome驱动程序及Python版Selenium库。添加Selenium库的命令如下:


Pip install Selenium

首先,从Python的Selenium库中导入所需模块。添加以下命令:


From selenium import webdriverdriver = webdriver.Chrome()

为实现自动登录,先从填写网站登录表单这一简单任务开始。

任务步骤包括:

  • 导航至目标网站
  • 定位登录字段(通常为用户名和密码输入框)。
  • 填写登录详细信息。
  • 提交登录信息,自动完成屏幕登录流程。

建议:定义“方法”(用于频繁登录)以便在其他测试中复用。参考代码行如下:


From selenium import webdriver
driver = webdriver.Chrome()
def login(url,username,password,submit_button):
driver.get(url)
driver.find_element_by_id(username).send_keys("username")
driver.find_element_by_id(password).send_keys("password")
driver.find_element_by_id(password).(submit_button).click()

注意,你需要获取与之交互的元素,这通常是创建Web抓取器或自动登录脚本的难点之一。

有多种方法可检测Web应用程序元素以查找登录字段。

常用定位方法包括ID(如上文示例)、CSS选择器、名称和XPaths。

Selenium官方文档提供了定位登录过程涉及元素的不同方法。部分网站包含动态内容(如多个JavaScript脚本)。

总体而言,看着Selenium自动点击按钮并登录至你喜爱的网站颇具吸引力。整个过程无需人工干预,宛如魔术。

3. 自动文件备份

若需执行常规备份,创建自动备份文件的脚本非常实用。

你可能熟悉ZIP文件(扩展名为.zip)。ZIP文件可包含多个压缩内容文件,且能容纳文件夹及子文件夹,因此将文件打包为单个ZIP文件是便捷的备份方式。

可使用Python zipfile模块中的函数自动创建单个ZIP文件(存档文件),也可用Python打开或提取ZIP文件。脚本示例如下:


import zipfile, os

def backup(folder)
folder = os.path.abspath(folder)
offset = 1
while True:
    zip_name = os.path.basename(folder) + '_' + str(offset) + '.zip'
if not os.path.exists(zip_name):
    break
offset += 1
print("Successfully created file " % s " %(zip_name))
        backupzip = zipfile.ZipFile(zip_name, 'w') for foldername, subfolders, filenames in os.walk(folder):
        backupzip.write(foldername) backupzip.close() print("done")

4. 自动将YouTube视频发布至Reddit主题

另一个一劳永逸的想法是自动化频繁执行的任务:使用脚本将多个视频发布到Reddit。

发布YouTube视频至Reddit帖子也可实现自动化。使用PRAW(一种允许抓取数据的Python包装器)可为Reddit体验提供更多功能。

使用前,请使用pip安装PRAW。

以下脚本可自动将YouTube视频发布到Reddit主题。


import praw

video_url = str(input("Your video url:"))
post_msg = str(input("Your post message"))
reddit = praw.Reddit(client_id = "***************",
    client_secret = "************",
    user_agent = "**********",
    username = "************",
    password = "***********")
subreddit_list = ["Python", "PytonProjects", "learningprogramming"]
for i in subreddit_list:
    subreddit = reddit.subreddit(i)
print("Posting video to" + i)
subreddit.submit(post_msg, url = video_url)
print("Done")

结论

自动化任务充满乐趣,特别是看着程序自动登录站点或将数百个文件加载到数据库时。

此外,还有许多优秀库可轻松实现任务自动化。只要库可维护,Excel报告、电子邮件及其他任务均可通过少量代码简化。

以上就是Python自动化四个实用操作的详细内容,更多关于Python自动化实用操作的资料请关注本站其他相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。