Python 是一个非常适合自动化日常任务的工具,这得益于它的简单性和丰富的库。下面列出了帮助在多个领域自动化常见任务的 Top 25 Python 脚本。
1. 自动化发送电子邮件- 使用Python发送带附件的邮件。
- 要用到的库有:
smtplib
和email
import smtplib
from email.mime.text import MIMEText
def send_email(subject, body, to_email):
smtp_server = "smtp.gmail.com"
smtp_port = 587
sender_email = "your_email@gmail.com"
sender_password = "your_password"
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = sender_email
msg['To'] = to_email
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(sender_email, sender_password)
server.sendmail(sender_email, to_email, msg.as_string())
2. 网页抓取:提取数据
- 自动从网站上提取数据,库包:
requests
,BeautifulSoup
。
import requests # 导入requests库
from bs4 import BeautifulSoup # 导入BeautifulSoup库
def scrape_weather(): # 定义一个抓取天气信息的函数
url = "https://weather.com" # 设置目标网页的URL
response = requests.get(url) # 发送HTTP GET请求获取网页内容
soup = BeautifulSoup(response.text, 'html.parser') # 使用BeautifulSoup解析网页内容
print(soup.title.string) # 打印网页的标题内容
步骤3:从网上下载文件
- 自动从 URL 地址下载文件。
- 使用
requests
库
# 下载文件函数,用于从指定URL下载文件并保存到指定路径
def download_file(url, save_path):
response = requests.get(url)
with open(save_path, 'wb') as file:
file.write(response.content)
4. 自动文件分类.
- 自动按文件扩展名整理文件。
- 库:
os
和shutil
import os
import shutil
def sort_files(directory):
# 获取目录中的文件列表
for file in os.listdir(directory):
# 获取文件扩展名
ext = file.split('.')[-1]
# 创建目录
folder = os.path.join(directory, ext)
os.makedirs(folder, exist_ok=True)
# 移动文件
shutil.move(os.path.join(directory, file), os.path.join(folder, file))
5. 批量重命名文件:
- 批量重命名文件。
- 依赖库:
os
以下是英文代码示例
```python
import os # 导入os模块
def rename_files(directory, prefix): # 用于重命名文件的函数
for i, file in enumerate(os.listdir(directory)): # 目录路径
os.rename(os.path.join(directory, file), os.path.join(directory, f"{prefix}_{i}.txt")) # 进行重命名操作
# 构建新的文件名
#6: 自动备份
* 将重要文件备份成一个 zip 文件。
* 库(`shutil`)
import shutil
def 制作备份(source_dir, backup_file):
# 创建一个zip类型的压缩文件,将source_dir中的文件打包到backup_file中
shutil.make_archive(backup_file, 'zip', source_dir)
# 7. 自动化社交媒体发布
* 安排推特推文/状态更新。
* 库:`tweepy` 和 `facebook-sdk`
import tweepy # 导入tweepy库
# 定义发布推文的函数,参数包括API密钥、密钥密钥、访问令牌和令牌密钥,以及要发布的推文内容
def post_tweet(api_key, api_secret, access_token, access_secret, tweet):
# 创建OAuthHandler对象,用于OAuth认证
auth = tweepy.OAuthHandler(api_key, api_secret)
# 设置访问令牌和令牌密钥,完成OAuth认证
auth.set_access_token(access_token, access_secret)
# 创建API对象,用于与Twitter API交互
api = tweepy.API(auth)
# 更新状态,发布推文
api.update_status(tweet)
#8 自动化处理电子表格中的数据
* 读写 Excel 文件。
* 库包:`openpyxl`(一个Python库包)
导入 openpyxl
def 读取Excel(file):
wb = openpyxl.load_workbook(file)
sheet = wb.active
for row in sheet.iter_rows():
print([cell.value for cell in row])
9. 自动化文本翻译
* 使用API来翻译文本。
* 例如,可以使用`googletrans`库。
from googletrans import Translator
def translate_text(text, dest_lang): # 定义翻译文本的函数
translator = Translator() # 创建Translator对象
return translator.translate(text, dest=dest_lang).text # 返回翻译后的文本
#10: 自动处理 PDF 操作
* 合并、拆分或提取PDF中的文本。
* 库包:Python `PyPDF2`
从PyPDF2导入PdfReader和PdfMerger
def 合并pdfs(pdf_list, 输出):
pdf合并器 = PdfMerger()
for pdf in pdf_list:
pdf合并器.append(pdf)
pdf合并器.write(输出)
#11:自动化图像处理
* 调整尺寸、旋转或添加水印标志。
* 库:例如`Pillow`
从PIL导入Image
def resize_image(image_path, output_path, size):
with Image.open(image_path) as img:
img.resize(size).save(output_path)
#12. 自动化网站监视
* 当网站更新时通知我,
* 需要用到的库有`requests`, `time`,
import requests
import time
# 这个函数用来监控网站的更新情况,每隔一定时间检查一次
def monitor_website(url, interval):
prev_content = None
while True:
response = requests.get(url)
if response.text != prev_content:
print("网站更新了!")
prev_content = response.text
time.sleep(interval)
# 13. 自动备份数据库
* 备份数据库,如MySQL。
* 库:`subprocess`(注意:这里的`subprocess`是Python中的库,不适用于备份MySQL数据库)
```python
import subprocess
def backup_mysql(user, password, db_name, output): # 备份MySQL数据库的函数
cmd = f"mysqldump -u {user} -p {password} {db_name} > {output}" # 构建命令字符串
subprocess.run(cmd, shell=True) # 运行命令
# 用户名
# 密码
# 数据库名
# 输出路径
用户名
密码
数据库名
输出路径
14. 自动化 Slack 消息提醒
- 通过编程发送Slack消息。
- 库:
slack-sdk
from slack_sdk import WebClient # 从slack_sdk导入WebClient
# 下面定义一个发送Slack消息的函数,接受三个参数:token(令牌),channel(频道)和text(消息文本)。
def send_slack_message(token, channel, text):
client = WebClient(token=token)
client.chat_postMessage(channel=channel, text=text)
15. 自动更新天气
首先,我们需要获取天气信息。需要用到的库有:requests
。
导入 requests 库
def 天气查询(api_key, city):
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}"
return requests.get(url).json()
16. 自动文本转语音
- 把文本转成语音。
- 使用库:
pyttsx3
导入pyttsx3
# 初始化语音引擎
def text_to_speech(text):
engine = pyttsx3.init()
engine.say(text)
engine.runAndWait()
17. 自动货币转换
- 使用API来转换货币。
- 可以使用这个库:
forex-python
从 forex_python.converter 导入 CurrencyRates 作为 c
def convert_currency(amount, from_currency, to_currency):
c = CurrencyRates()
return c.convert(源货币, 目标货币, amount)
18. 自动化任务安排
- 安排Python任务的调度。
- 库:
schedule
包
import schedule
import time
def 任务():
print("任务运行中...")
schedule.every().day.at("10:00").do(任务)
while True:
schedule.run_pending()
time.sleep(1)
19. 自动化提醒
- 手机推送通知。
- 库包:
pushbullet
from pushbullet import Pushbullet # 引入Pushbullet模块
def send_notification(api_key, title, body): # 定义一个发送通知的函数
pb = Pushbullet(api_key) # 创建一个Pushbullet对象,使用提供的apikey
# 接下来,我们使用这个对象发送一个通知
pb.push_note(title, body)
20. 自动化目录清理
- 删除目录里的旧文件。
- 使用的库:
os
,time
import os
import time
# 清理目录中最后修改日期超过指定天数的文件
def 清理(directory, days):
now = time.time()
for file in os.listdir(directory):
filepath = os.path.join(directory, file)
if os.stat(filepath).st_mtime < now - days * 86400:
os.remove(filepath)
21. 自动监控股票价格
- 获取股票价格。
- 库:
yfinance
。
导入 yfinance as yf # 导入yfinance库并将其别名为yf
定义一个函数来获取股票价格(ticker):
stock = yf.Ticker(ticker)
return stock.历史(period="1d")["Close"]
第二十二. 自动生成二维码生成
- 为文本或网址生成二维码。
- 库:
qrcode
导入 qrcode 库
def 生成QR(data, filename):
qr = qrcode.make(data)
qr.save(filename)
23. 自动化按键仿真
- 自动执行键盘输入。
- 库:
pyautogui
(一个用于模拟键盘和鼠标操作的库)
import pyautogui
# 自动化打字函数
def automate_typing(text):
# 输入文本并发送
pyautogui.typewrite(text)
- 自动化 Git 操作.
- 自动化 git push/pull。
- 库(包):
subprocess
import subprocess
def 提交推送(message):
# 提交所有更改到git仓库
subprocess.run(["git", "add", "."])
# 添加提交信息
subprocess.run(["git", "commit", "-m", message])
# 推送更改到远程仓库
subprocess.run(["git", "push"])
25. 自动化时间记录
- 记录你在任务上花费的时间。
- 库:
time
(时间库)
import time
start_time = time.time()
# 做一些工作
print("用时:", time.time() - start_time)
这些脚本可以帮你节省时间并简化重复的工作。将这些脚本与 cron 任务或任务调度器结合使用,可以实现强大的自动化。
如需更多详情或在选择最适合您需求的解决方案时,请访问https://vastites.ca/,我们的团队将为您提供帮助。您也可以通过电话+1 (647) 491–6566联系我们。
共同学习,写下你的评论
评论加载中...
作者其他优质文章