一文详解8个Python自动化脚本让你告别重复劳动
AI的发展越来越厉害所以很多人也习惯把任务直接丢给AI。但 AI 在处理自动化任务时有时候还会不稳定有些还要收费。对于需要每天定时运行、处理大量文件或监控系统状态的任务依靠 AI 每次生成结果容易出现幻觉偏差。AI很好但其实有时候杀鸡没必要用牛刀。Python 一样可以完成一些简单的自动化任务。在写 Python 之前要确保 Python 的环境已经准备好。推荐使用 ServBay 来管理开发环境它支持一键安装 Python 环境覆盖了从半只脚踏进棺材板的 Python 2.7 到Python 3.5 乃至最新的 Python 3.14 版本。而且这些版本可以同时并存不需要手动去配置环境变量也不用担心弄乱系统的默认配置。装好就能用一分钟就能搞定。有了稳定的环境下面分享几个在实际工作中常用的自动化脚本模式。自动重试机制让网络请求更健壮写爬虫或调用 API 时网络波动是常态。与其在每个请求处都写一遍try-except不如把重试逻辑封装起来。专业的脚本不会因为一次超时就崩溃。1234567891011121314151617181920212223242526importtimeimportrequestsfromrequests.exceptionsimportRequestExceptiondeffetch_with_retry(url, max_retries3, pause2):带有自动重试机制的GET请求forattemptinrange(max_retries):try:# 设置超时是必须的防止程序无限挂起responserequests.get(url, timeout10)response.raise_for_status()# 如果状态码不是200抛出异常returnresponseexceptRequestException as e:print(f请求失败 (尝试 {attempt 1}/{max_retries}): {e})ifattemptmax_retries-1:raise# 最后一次尝试也失败抛出异常time.sleep(pause)# 使用示例try:datafetch_with_retry(https://api.github.com)print(f请求成功状态码: {data.status_code})exceptRequestException:print(重试多次后依然失败请检查网络或目标服务。)它将网络不稳定的偶发故障在代码层面消化。最大的好处是防止脚本因为一次微小的网络抖动就全盘崩溃真正实现了“无人值守”运行特别适合夜间批量任务。依据文件内容重命名有时候文件名没有及时修改就不知道这个文件到底是什么了。但一个个打开看又非常花时间我们就可以写个脚本让它读取内容并重命名。这个逻辑常用于处理发票、日志或自动生成的报告。12345678910111213141516171819202122232425262728importosTARGET_DIR./reportsdefclean_filename(text):# 去除文件名中的非法字符return.join(c if c.isalnum() else _forcintext)[:50]forfilenameinos.listdir(TARGET_DIR):full_pathos.path.join(TARGET_DIR, filename)# 确保只处理文件ifos.path.isfile(full_path):try:withopen(full_path,r, encodingutf-8) as f:# 读取第一行作为新文件名first_linef.readline().strip()iffirst_line:new_nameclean_filename(first_line).txtnew_pathos.path.join(TARGET_DIR, new_name)# 防止覆盖已存在的文件ifnotos.path.exists(new_path):os.rename(full_path, new_path)print(f重命名: {filename} - {new_name})exceptException as e:print(f无法处理文件 {filename}: {e})解决了文件名无意义如scan_001.txt的痛点。脚本直接读取文件核心内容来命名检索文件时效率很高不再需要逐个打开确认。清理长期未访问的僵尸文件磁盘空间总是莫名其妙变少多半是因为那些下载后就再没打开过的临时文件。这个脚本能清理长期没有访问过的文件它是依据最后访问时间来运行。123456789101112131415161718192021importosimporttimeWATCH_DIR/path/to/cleanupEXPIRY_DAYS180# 6个月未访问则删除current_timetime.time()forfilenameinos.listdir(WATCH_DIR):filepathos.path.join(WATCH_DIR, filename)ifos.path.isfile(filepath):# 获取最后访问时间 (atime)last_access_timeos.path.getatime(filepath)# 计算时间差ifcurrent_time-last_access_time (EXPIRY_DAYS*86400):try:os.remove(filepath)print(f已删除陈旧文件: {filename})exceptOSError as e:print(f删除失败: {e})基于“访问时间”而非“创建时间”判断这非常关键因为它能精准识别那些真正不再需要的文件。它就像一个隐形的清洁工防止磁盘空间被无用的临时数据悄悄吃光。监控并查杀高负载僵尸进程有些 Python 脚本尤其是涉及多进程或机器学习任务的在意外退出后会留下孤儿进程占用大量 CPU。手动打开活动监视器查找太慢直接用脚本自检。1234567891011121314151617importpsutil# 设定阈值CPU占用超过80%且进程名为pythonCPU_THRESHOLD80.0PROCESS_NAMEpythonforprocinpsutil.process_iter([pid,name,cpu_percent]):try:# psutil获取cpu_percent通常需要interval这里取瞬时值可能需要两次调用或结合实际场景调整# 在脚本循环监控中更为有效ifproc.info[name]andPROCESS_NAMEinproc.info[name].lower():ifproc.info[cpu_percent] CPU_THRESHOLD:print(f检测到高负载僵尸进程 PID: {proc.info[pid]} (CPU: {proc.info[cpu_percent]}%))proc.kill()print(已终止进程。)except(psutil.NoSuchProcess, psutil.AccessDenied):pass复制讲解这是一种主动防御机制。它解决了长时间运行脚本可能导致的内存泄漏或死循环问题避免了因单个失控进程拖慢整个系统省去了你手动打开活动监视器排查的时间。操作前的后悔药自动备份在对配置文件或关键数据进行写入操作前备份是必须的。但往往都是忘记了备份。那就把自动化备份交给Python吧。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2579266.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!