作为开发者,我们经常需要处理各种重复性任务。Python 因其简洁的语法和强大的标准库,成为自动化脚本的首选语言。今天分享 10 个我日常使用的实用脚本。
1. 批量重命名文件
import os
import glob
files = glob.glob('*.txt')
for i, filename in enumerate(files, 1):
os.rename(filename, f'file_{i:03d}.txt')
这个脚本可以批量重命名文件夹中的文件,添加序号前缀。
2. 批量转换图片格式
from PIL import Image
import os
for filename in os.listdir('.'):
if filename.endswith('.png'):
img = Image.open(filename)
img.save(filename.replace('.png', '.jpg'), 'JPEG')
使用 Pillow 库批量将 PNG 转换为 JPG 格式。
3. 自动备份重要文件
import shutil
from datetime import datetime
source = '/path/to/source'
backup_dir = f'/path/to/backup_{datetime.now().strftime("%Y%m%d")}'
shutil.copytree(source, backup_dir)
每天自动创建带日期戳的备份。
4. 批量修改 CSV 文件
import pandas as pd
df = pd.read_csv('data.csv')
df['new_column'] = df['column1'] * 2
df.to_csv('output.csv', index=False)
用 pandas 快速处理和分析 CSV 数据。
5. 自动发送邮件提醒
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg['Subject'] = '任务完成提醒'
msg['From'] = 'your@email.com'
msg['To'] = 'recipient@email.com'
msg.set_content('任务已成功完成!')
with smtplib.SMTP('smtp.gmail.com', 587) as server:
server.starttls()
server.login('user', 'password')
server.send_message(msg)
脚本运行完成后自动发送通知邮件。
6. 监控网站状态
import requests
import time
while True:
try:
r = requests.get('https://your-site.com', timeout=5)
if r.status_code != 200:
print(f'异常!状态码: {r.status_code}')
except Exception as e:
print(f'错误: {e}')
time.sleep(60)
定期检查网站是否正常运行。
7. 自动清理日志文件
import os
import time
days = 7
now = time.time()
for filename in os.listdir('/var/log/app'):
filepath = os.path.join('/var/log/app', filename)
if os.path.getmtime(filepath) < now - days * 86400:
os.remove(filepath)
自动删除超过 7 天的旧日志文件。
8. 批量下载图片
import requests
from bs4 import BeautifulSoup
import urllib.parse
url = 'https://example.com'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')
for img in soup.find_all('img'):
img_url = urllib.parse.urljoin(url, img['src'])
data = requests.get(img_url).content
with open(img['src'].split('/')[-1], 'wb') as f:
f.write(data)
从网页批量下载所有图片。
9. 自动生成 README 模板
template = '''# {title}
## 描述
{description}
## 安装
```bash
pip install {package}
```
## 使用
```python
import {package}
```
'''
with open('README.md', 'w') as f:
f.write(template.format(title='My Project', description='...', package='mypackage'))
快速为新项目创建 README 文件。
10. 自动部署到服务器
import subprocess
import os
commands = [
'git pull',
'pip install -r requirements.txt',
'systemctl restart myapp'
]
for cmd in commands:
subprocess.run(cmd, shell=True, check=True)
一键拉取代码并重启服务。
总结
这些脚本覆盖了文件处理、数据操作、系统管理等常见场景。你可以根据实际需求修改和组合它们。记住,好的自动化脚本应该:
- 有清晰的注释
- 处理异常情况
- 可以配置参数
- 有日志记录
Happy Coding!