机器学习初学者 2024年11月26日
【Python】10个Python编程脚本,超能力再升级
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了十个Python实用技法,包括自动整理文件和文件夹、自动删除旧文件、批量调整图片大小等,这些技法能提升编程技能,让工作更高效。

🎁自动整理文件和文件夹,根据文件扩展名分类

🗑自动删除指定年龄的旧文件,节省硬盘空间

📏批量调整图片大小,节省手动操作时间

🔑生成安全密码,保障信息安全

📧自动从邮件列表中退订,减少垃圾邮件

💧为图片添加水印,保护作品权益

📅定时发送邮件,方便提前安排

📚打开随机维基百科文章,拓展知识

🚫在设定时间内屏蔽网站,提高工作效率

💬从Python发送WhatsApp消息,实现便捷通知

学研君 2024-11-26 12:02 浙江

编程修行路漫漫,快捷脚本好相伴。十个Python好技法,超能升级不间断。

编程修行路漫漫,快捷脚本好相伴。十个Python好技法,超能升级不间断。

Python因其易读性和简洁的语法,非常适合编程新手。想要提升你的Python技能吗?本文精选了10个有趣的脚本,提升你的编程超能力,让我们一起开始学习吧!

目录

    自动整理文件和文件夹

    自动删除旧文件

    批量调整图片大小

    密码生成器

    自动退订

    图片水印

    定时发送邮件

    随机维基百科文章

    网站屏蔽器

    发送WhatsApp消息

1. 自动整理文件和文件夹

手动整理文件和文件夹可能很繁琐。这个Python脚本可以自动根据文件扩展名将文件分类到对应的文件夹。

import os
import shutil
# 要整理的文件夹
folder = '/path/to/folder/'
# 文件扩展名和对应的文件夹名称
extensions = {
    'Images': ['jpg''jpeg''png''svg'],
    'Documents': ['doc''docx''pdf''xls''ppt''txt'],
    'Video': ['mov''mp4''avi''wmv'],
    'Audio': ['wav''mp3']
}
# 遍历文件夹中的项目
for item in os.listdir(folder):
  filename, extension = os.path.splitext(item)
  
  # 如果是文件,将其移动到对应的文件夹
  if extension:
    for folder_name, ext_list in extensions.items():
      if extension[1:] in ext_list: 
        folder_path = os.path.join(folder, folder_name) 
        if not os.path.exists(folder_path):
          os.makedirs(folder_path)
        shutil.move(os.path.join(folder, item), folder_path)

闲时记得运行它,文件整理顶呱呱!

2. 自动删除旧文件

累积的旧文件会占用硬盘空间。这个脚本会删除超过指定年龄的文件。

import os
import shutil
import datetime
# 要清理的文件夹
folder = '/path/to/folder'
# 修改日期早于此日期的文件将被删除 
days = 30
seconds = days * 24 * 60 * 60
min_date = datetime.datetime.now() - datetime.timedelta(seconds=seconds)
for root, dirs, files in os.walk(folder):
  for file in files:
    file_path = os.path.join(root, file)
    modified = os.path.getmtime(file_path)
    if modified < min_date.timestamp():
      print(f'Deleting old file: {file_path}')
      os.remove(file_path)

设置days变量以自动清理旧文件。

3. 批量调整图片大小

手动调整大量图片的大小很耗时。这个脚本可以调整文件夹中所有图片的大小。

from PIL import Image  
import os
# 包含要调整大小的图片的文件夹
folder = '/path/to/folder' 
# 期望的图片尺寸
size = (800600)
for img in os.listdir(folder):
  if img.endswith(('jpg''jpeg''png')):
    path = os.path.join(folder, img)
    image = Image.open(path)
    image_resized = image.resize(size)
    image_resized.save(path)
print('Images resized successfully!')

只需设置期望的大小并运行,即可轻松批量调整图片大小。

4. 密码生成器

需要一些独特的安全密码?不妨试试下面的安全密码随机生成法。

import random
import string
length=12 #密码长度
# 可选字符列表
lower=string.ascii_lowercase
upper=string.ascii_uppercase
num=string.digits
symbols=string.punctuation
# 合并所有字符集
all=lower+upper+num+symbols
# 使用random创建密码
password = ''.join(random.sample(all,length)) 
print(password)

fetchone()方法获取结果集的一行。

5. 自动退订

收到电子邮件垃圾邮件很烦人。这个脚本可以从文本文件中的所有邮件列表中退订。

import smtplib
from email.mime.text import MIMEText
# 要退订的电子邮件列表 
unsub_emails = open('unsub_list.txt').readlines() 
for email in unsub_emails:
  msg = MIMEText('Unsubscribe')
  msg['Subject'] = 'Unsubscribe'
  msg['From'] = 'you@email.com'
  msg['To'] = email
  s = smtplib.SMTP('localhost')
  s.send_message(msg)
  s.quit()
  print(f'Unsubscribed from {email}')

6. 图片水印

给图片添加水印可以保护您的作品。这个脚本可以为文件夹中的所有图片添加水印。

from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
img_folder = '/path/to/folder'
watermark_text = 'Your Watermark'
# 加载字体
font = ImageFont.truetype('arial.ttf'50)
for img in os.listdir(img_folder):
  if img.endswith(('.jpg','.jpeg')):
    
    path = os.path.join(img_folder, img)
    image = Image.open(path)
    # 使图片可编辑
    drawing = ImageDraw.Draw(image)
    # 获取文本大小
    text_size = drawing.textsize(watermark_text, font)
    # 设置位置
    position = image.size[0] - text_size[0], image.size[1] - text_size[1]
    # 添加水印 
    drawing.text(position, watermark_text, (255,255,255), font=font)
    # 保存加水印的图片
    image.save(path)
    print('Added watermarks to all images!')

自定义水印文本和字体样式/大小以满足您自己的水印需求。

7. 定时发送邮件

提前写好邮件并安排发送时间非常方便。这个脚本正是这样做的。

import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate
import datetime as dt
# 邮件详情
sender = 'you@email.com'
recipients = ['recipient@email.com']
msg = MIMEText('Body')
msg['Subject'] = 'Scheduled Email' 
msg['From'] = sender
msg['To'] = ', '.join(recipients)
# 安排明天发送
send_date = dt.datetime.now().date() + dt.timedelta(days=1)
msg['Date'] = formatdate(int(send_date.timestamp()))
s = smtplib.SMTP('localhost')
s.send_message(msg)
s.quit()
print('Email scheduled for tomorrow!')

只需调整send_date即可安排稍后发送邮件。

8. 随机维基百科文章

这个脚本会在您的浏览器中打开一个随机的维基百科文章。

import requests
import webbrowser
api_url = 'https://en.wikipedia.org/api/rest_v1/page/random/summary'
response = requests.get(api_url)
data = response.json()
random_title = data['title']
random_page = 'https://en.wikipedia.org/wiki/'  + random_title
print('Opening random Wikipedia page:')
print(random_page)
webbrowser.open(random_page)

9. 网站屏蔽器

一些网站在工作时可能会分散注意力。这个脚本可以在设定的时间内屏蔽网站。

import time
from datetime import datetime as dt
hosts_path = r"/etc/hosts"
redirect = "127.0.0.1"
# 要屏蔽的网站列表 
websites = ["www.facebook.com","facebook.com"]
start_time = dt(20231110800)
end_time = dt(202311101600)
while True:
  if start_time < dt.now() < end_time:
    print("Working hours...")
    with open(hosts_path, 'r+'as file:
      content = file.read()
      for site in websites:
        if site not in content:
          file.write(redirect + " " + site + "\n")
  else:
    print("Free time...")
    with open(hosts_path, 'r+'as file:
      content = file.readlines()
      file.seek(0)
      for line in content:
        if not any(site in line for site in websites):
          file.write(line)
      file.truncate()
  time.sleep(5)

此脚本可以在您配置的工作时间内屏蔽和取消屏蔽网站,以实现无干扰的生产力。

10. 发送WhatsApp消息

直接从Python发送WhatsApp消息?是的,这是可能的!这个脚本可以发送WhatsApp消息。

from twilio.rest import Client
# 您的Twilio凭证 
account_sid = 'ACxxxxxxxxx' 
auth_token = 'xxxxxxxxxx'
client = Client(account_sid, auth_token)
# 消息详情
from_whatsapp = 'whatsapp:+14155238886'
to_whatsapp = 'whatsapp:+447123456789'
body = 'Hello from Python!'
message = client.messages.create(  
                              from_=from_whatsapp,  
                              body=body,      
                              to=to_whatsapp
                          )
print(message.sid)

方便用于通过WhatsApp直接发送通知或警报。

往期精彩回顾





请备注:”昵称-学校/公司-研究方向“,例如:”张小明-浙大-CV“加群。

也可以加入机器学习交流qq群772479961



跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python 实用技法 编程技能
相关文章