【30天玩转python】自动化与脚本编写

news/2024/10/4 12:52:27/

自动化与脚本编写

Python 因其简洁的语法和强大的标准库,非常适合用于自动化任务和编写脚本。通过编写 Python 脚本,可以自动执行重复性工作、简化日常任务、批量处理文件和数据,甚至管理服务器等。本篇文章将介绍如何使用 Python 编写自动化脚本,帮助读者提升工作效率。


1. 自动化任务的基本思路

自动化任务通常包含以下几个步骤:

  1. 明确任务:分析需要自动化的任务流程和目标。
  2. 选择工具:根据任务选择合适的库或工具。
  3. 编写脚本:通过 Python 实现任务逻辑。
  4. 调试与优化:调试脚本并提升效率。
  5. 定时执行:借助系统计划任务工具定时执行脚本。

2. 文件与目录操作自动化

文件操作是自动化任务中的常见需求,Python 的 osshutil 模块提供了对文件和目录的强大操作功能。

2.1 文件读取与写入

示例:读取和写入文本文件

python"># 打开文件并读取内容
with open('input.txt', 'r') as file:content = file.read()print(content)# 写入内容到文件
with open('output.txt', 'w') as file:file.write('这是写入的内容')
  • open():用于打开文件,'r' 表示读取模式,'w' 表示写入模式。
  • with 语句用于自动管理文件的打开和关闭。
2.2 目录操作

示例:创建、删除和遍历目录

python">import os
import shutil# 创建目录
os.mkdir('new_folder')# 删除目录
os.rmdir('new_folder')# 遍历目录下的所有文件
for root, dirs, files in os.walk('.'):for file in files:print(os.path.join(root, file))
  • os.mkdir():创建一个新目录。
  • os.rmdir():删除一个空目录。
  • os.walk():遍历指定目录下的所有文件和子目录。
2.3 文件复制与移动

示例:复制和移动文件

python">import shutil# 复制文件
shutil.copy('input.txt', 'copy_of_input.txt')# 移动文件
shutil.move('input.txt', 'archive/input.txt')
  • shutil.copy():复制文件。
  • shutil.move():移动文件或重命名文件。

3. 网络请求自动化

Python 的 requests 库提供了简便的方式来进行 HTTP 请求,适合自动化与 Web 应用交互或数据抓取。

3.1 安装 requests 库

使用以下命令安装 requests

pip install requests
3.2 发送 HTTP 请求

示例:发送 GET 请求

python">import requests# 发送 GET 请求
response = requests.get('https://jsonplaceholder.typicode.com/posts')# 输出响应内容
if response.status_code == 200:print(response.json())
  • requests.get():发送 HTTP GET 请求,获取指定 URL 的内容。
  • response.json():将响应内容解析为 JSON 格式。

示例:发送 POST 请求

python">import requests# 发送 POST 请求
data = {'name': 'Python', 'type': 'Script'}
response = requests.post('https://jsonplaceholder.typicode.com/posts', data=data)# 输出响应状态码
print(response.status_code)

4. 定时任务

Python 可以与操作系统的计划任务工具结合,定时执行自动化脚本。

4.1 Windows 下的任务计划
  1. 打开 Windows 任务计划程序。
  2. 创建一个新的任务,设置触发器为定时执行。
  3. 动作中选择 Python 可执行文件,并将脚本路径作为参数传入。
4.2 Linux 下的 Crontab

在 Linux 系统中,可以使用 crontab 来定时执行脚本。编辑 crontab 配置文件:

crontab -e

添加以下条目,每天凌晨 1 点运行 Python 脚本:

0 1 * * * /usr/bin/python3 /path/to/your_script.py

5. 自动化系统管理

自动化系统管理任务中,Python 的 subprocess 模块能够执行系统命令,从而实现服务器管理、服务重启等操作。

5.1 使用 subprocess 执行命令

示例:执行系统命令

python">import subprocess# 执行 ls 命令
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8'))
  • subprocess.run():执行系统命令,返回结果。

6. 自动化邮件发送

Python 的 smtplib 模块可以用于自动化邮件发送任务。

6.1 示例:发送邮件
python">import smtplib
from email.mime.text import MIMEText# 设置邮件内容
msg = MIMEText('这是测试邮件内容', 'plain', 'utf-8')
msg['Subject'] = '自动化邮件'
msg['From'] = 'your_email@example.com'
msg['To'] = 'recipient@example.com'# 发送邮件
with smtplib.SMTP('smtp.example.com') as server:server.login('your_email@example.com', 'your_password')server.sendmail('your_email@example.com', ['recipient@example.com'], msg.as_string())

7. 数据处理自动化

Python 的 pandas 库擅长处理和分析大量数据,适合自动化数据处理任务。

7.1 安装 pandas

使用以下命令安装 pandas

pip install pandas
7.2 数据处理示例

示例:读取 CSV 文件并筛选数据

python">import pandas as pd# 读取 CSV 文件
data = pd.read_csv('data.csv')# 筛选出符合条件的数据
filtered_data = data[data['age'] > 30]# 输出筛选结果
print(filtered_data)

8. 小结

Python 为自动化任务提供了强大的工具和库,能够处理文件、网络请求、系统命令、邮件发送等各种场景。通过合理利用这些功能,可以大幅提升工作效率,并且通过计划任务工具能够实现任务的定时与自动化执行。


http://www.ppmy.cn/news/1534415.html

相关文章

Go语言实现长连接并发框架 - 路由分组

文章目录 前言接口结构体接口实现项目地址最后 前言 你好,我是醉墨居士,我们上篇博客实现了任务执行流的路由模块,接下来我们实现一下对任务执行流进行任务 接口 trait/router_group.go type RouterGroup interface {RouterGroup(flow ..…

yolov8/9/10模型在安全帽、安全衣检测中的应用【代码+数据集+python环境+GUI系统】

yolov8910模型安全帽、安全衣检测中的应用【代码数据集python环境GUI系统】 yolov8/9/10模型在安全帽、安全衣检测中的应用【代码数据集python环境GUI系统】 背景意义 安全帽和安全衣在工业生产、建筑施工等高风险作业环境中是保护工人免受意外伤害的重要装备。然而&#xff0…

Redis中String类型的常用命令(append,getrenge,setrange等命令)

Redis----String命令 前言.常见的String存储类型. 常见命令1. set 命令2. get 命令3. mget命令与mset命令4. setnx命令5. setex与psetex命令6. incr与incrby与incrbyfloat命令7. decr与decrby命令8. append命令9. getrange和setrange命令10. strlen命令. 前言. 常见的String存…

Tomcat监控与调优:比Tomcat Manager更加强大的Psi-Probe

这是一款 Tomcat 管理和监控工具,前身是 Lambda Probe。由于 Lambda Probe 2006不再更新,所以 PSI Probe 算是对其的一个 Fork 版本并一直更新至今。 Probe psi-probe是在相同的开源许可证(GPLV2)下分发的社区驱动的 Lambda Probe ,psi-pro…

使用 cron 来设置定时任务

使用 cron 来设置定时任务,以便定期运行这个脚本。 在 Linux 系统中设置定时任务的步骤: 1. 编辑 cron 任务 打开终端并输入以下命令以编辑 crontab 文件: crontab -e2. 设置每天 8 点运行脚本 在 crontab 文件的最后,添加以下…

【数据库差异研究】别名与表字段冲突,不同数据库在where中的处理行为

目录 ⚛️总结 ☪️1 问题描述 ☪️2 测试用例 ♋2.1 测试单层查询 ♏2.1.1 SQLITE数据库 ♐2.1.2 ORACLE数据库 ♑2.1.3 PG数据库 ♋2.2 测试嵌套查询 ♉2.2.1 SQLITE数据库 ♈2.2.2 ORACLE数据库 🔯2.2.3 PG数据库 ⚛️总结 单层查询 数据库类型别名…

Codeforces Round 121 (Div. 1) C题 Fools and Roads(LCA最近公共祖先,树上差分)

题目链接 https://codeforces.com/problemset/problem/191/C 思路 一道比较板的LCA和树上差分的题。 先预处理出这棵树的LCA,之后对于每一对 a i , b i a_{i},b_{i} ai​,bi​,在树上做差分,最后用 d f s dfs dfs处理差分数组即可。 树上…

“衣依”服装销售平台:Spring Boot技术架构剖析

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适…