仅仅几行 Python 代码,却可帮你快手完成大部分工作

Python 作为一种脚本语言,开发简单,几行代码却能发挥大作用。

本文将介绍几种有趣的 Python 脚本,一定能在你的生活和工作中发挥用处。

自动整理文件和文件夹

手动整理文件和文件夹可能很乏味。这个 Python 脚本可按扩展名类型自动将文件排序到文件夹中:

import os
import shutil# Folder to organize
folder = '/path/to/folder/' # File extensions and corresponding folder names
extensions = {'Images': ['jpg', 'jpeg', 'png', 'svg'],'Documents': ['doc', 'docx', 'pdf', 'xls', 'ppt', 'txt'],'Video': ['mov', 'mp4', 'avi', 'wmv'],'Audio': ['wav', 'mp3']
}# Loop through items in folder
for item in os.listdir(folder):filename, extension = os.path.splitext(item)# If it's a file, move it to the corresponding folderif 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)

如果你经常在网络上下载各种文件,比如视频,图片,文档等,那么你一定会感受到这个脚本的魅力,文件整理将不再头疼。

自动删除旧文件

累积的旧文件会占用硬盘空间。该脚本可删除超过指定时间的文件,当然是要保证旧文件的确没用的前提下:

import os
import shutil
import datetime# Folder to clean up
folder = '/path/to/folder'# Files modified before this date will be deleted 
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)

设置好天数后,运行即可,运行前一定要保证旧文件不再使用。删除文件的脚本还是需要谨慎运行。

你也可以根据这个脚本举一反三,开发属于自己的文件删除/管理工具。

批量调整图片大小

手动调整大量图片的大小非常耗时。该脚本可调整文件夹中所有图片的大小:

from PIL import Image  
import os# Folder containing images to resize
folder = '/path/to/folder' # Desired image dimensions
size = (800, 600)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!')

只需设置所需的大小,然后运行即可轻松实现批量图像大小调整。

密码生成器

好吧,又是这个老生常谈的话题,密码生成工具。编写独特的密码是件麻烦事,本脚本可生成随机安全密码:

import random
import stringlength = 12 # Password length# List of characters to select from 
lower = string.ascii_lowercase
upper = string.ascii_uppercase
num = string.digits
symbols = string.punctuation# Combine all character sets
all = lower + upper + num + symbols# Use random to create password
password = ''.join(random.sample(all,length)) print(password)

根据需要调整长度。这个脚本可以用来生成数据库密码或者 TOKEN 之类的字符串密码,如果拿来作为自己的账号密码,我建议还是使用密码工具比较合适。

因为现在的密码工具基本都带有自动填写功能,Python 创建密码虽好,但是输入的时候苦的是自己。

我之前用密码生成工具生成了一个长度在 50 左右的密码,有一次换设备登录,好嘛一顿输入,中间还输错一个重新来。

Email 自动退订

收到垃圾邮件很烦人。本脚本可将您从文本文件中的所有邮件列表退订:

import smtplib
from email.mime.text import MIMEText# List of emails to unsubscribe from 
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'] = emails = smtplib.SMTP('localhost')s.send_message(msg)s.quit()print(f'Unsubscribed from {email}')

只需将邮件列表中的电子邮件放入 unsub_list.txt 即可运行。终于可以和垃圾邮件说再见了!

水印照片

为图片添加水印可保护您的作品。该脚本可为文件夹中的所有图片添加水印:

from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw img_folder = '/path/to/folder'
watermark_text = 'WaterMark'# Load font
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)# Make image editabledrawing = ImageDraw.Draw(image)# Get text sizetext_size = drawing.textsize(watermark_text, font)# Set positionposition = image.size[0] - text_size[0], image.size[1] - text_size[1]# Add watermark drawing.text(position, watermark_text, (255,255,255), font=font)# Save watermarked imageimage.save(path)print('Added watermarks to all images!')

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

网站拦截器

有些网站会在工作时分散注意力。该脚本可在设定的时间内屏蔽网站:

import time
from datetime import datetime as dthosts_path = r"/etc/hosts"
redirect = "127.0.0.1"# List of websites to block 
websites = ["www.facebook.com","facebook.com"]start_time = dt(2023, 11, 10, 8, 0, 0)
end_time = dt(2023, 11, 10, 16, 0, 0)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)

在您设定的工作时间内,它可以屏蔽和解除屏蔽网站,让您心无旁骛地提高工作效率。原理就是修改 hosts 文件,让网站无法正常访问。

以上就是今天提到的 Python 几个比较实用且好玩的脚本工具了,可以直接拿来使用,也可以学习其中的原理和思路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NPC问题

1. P 问题和 NP 问题&#xff1a; P 问题&#xff08;多项式时间可解问题&#xff09;&#xff1a; P 问题是可以在多项式时间内有效解决的问题&#xff0c;即存在一个算法&#xff0c;其运行时间是输入规模的多项式函数。例如&#xff0c;排序算法、搜索算法等都属于 P 问题。…

【DevOps-02】Code编码阶段工具

一、简要说明 在code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。 Git安装安装GitLab配置GitLab登录账户二、Git安装 Git官网 Githttps://git-scm.com/

gin框架实战(一)- HTTP请求参数校验之神器validator

1 快速安装 使用之前&#xff0c;首先要获取validator这个库&#xff1a; $ go get github.com/go-playground/validator/v10 2 功能 golang http 请求参数校验工具&#xff0c;具备复杂参数校验规则。 3 操作符 标记 标记说明 , 多操作符分割 | 或操作 - 跳过字段…

重新定义出行,PIX移动空间-Robobus2.0正式发布

PIX从创始之初就以重塑城市作为愿景&#xff0c;基于对未来终局的思考&#xff0c;我们重新定义了下一代汽车–移动空间&#xff0c;汽车不再只是一个交通工具&#xff0c;而是一个个提供服务的移动空间&#xff0c;这也将最终重塑城市&#xff0c;使城市成为一个真正的超级有机…

正定矩阵在格密码中的应用(知识铺垫)

目录 一. 写在前面 二. 最小值点 三. 二次型结构 四. 正定与非正定讨论 4.1 对参数a的要求 4.2 对参数c的要求 4.3 对参数b的要求 五. 最小值&#xff0c;最大值与奇异值 5.1 正定型&#xff08;positive definite&#xff09; 5.2 负定型&#xff08;negative defin…

【MySQL】字符集与排序规则

在MySQL数据库中&#xff0c;字符集&#xff08;Character Set&#xff09;和排序规则&#xff08;Collation,也称字符集校验规则&#xff09;是重要的概念&#xff0c;它们对于正确存储和比较数据至关重要。 字符集与排序规则 字符集是一组字符的集合&#xff0c;与数字编码…

8个流行的Python可视化工具包,你喜欢哪个?

用 Python 创建图形的方法有很多&#xff0c;但是哪种方法是最好的呢&#xff1f;当我们做可视化之前&#xff0c;要先明确一些关于图像目标的问题&#xff1a;你是想初步了解数据的分布情况&#xff1f;想展示时给人们留下深刻印象&#xff1f;也许你想给某人展示一个内在的形…

PostgreSQL从入门到精通 - 第40讲:数据库不完全恢复

PostgreSQL从小白到专家&#xff0c;是从入门逐渐能力提升的一个系列教程&#xff0c;内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容&#xff0c;希望对热爱PG、学习PG的同学们有帮助&#xff0c;欢迎持续关注CUUG PG技术大讲堂。 第40讲&#…

几种Go语言开发的IDE

Go语言&#xff08;或Golang&#xff09;是一种高效的编程语言&#xff0c;它支持并发机制和强大的标准库。由于其日益增长的流行&#xff0c;现在有许多IDE&#xff08;集成开发环境&#xff09;支持Go语言开发。这些IDE提供了代码高亮、智能代码补全、调试工具、版本控制集成…

[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-4 拉普拉斯变换(Laplace)传递函数、微分方程

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-4 拉普拉斯变换&#xff08;Laplace&#xff09;传递函数、微分方程 1. Laplace Transform 拉式变换2. 收敛域&#xff08;ROC&#xff09;与逆变换&#xff08;ILT&…

ffmpeg转码新技能

ffmpeg转码新技能 mp3转wavmp4转gif mp3转wav 今天发现之前用ffmpeg转码不好使了。今天发现一个ffmpeg转码新的用法非常简单 ffmpeg -i 0104.mp3 -f wav 0104.wav mp4转gif 同学求助将mp4转gif。我先用剪影把mp4的多余黑边去除。然后用ffmpeg将mp4转出了gif ffmpeg -i shu…

谷歌推出了一种名为提示扩展(Prompt Expansion)的创新框架,旨在帮助用户更轻松地创造出既高质量又多样化的图像。

谷歌推出了一种名为提示扩展&#xff08;Prompt Expansion&#xff09;的创新框架&#xff0c;旨在帮助用户更轻松地创造出既高质量又多样化的图像。 论文标题: Prompt Expansion for Adaptive Text-to-Image Generation 论文链接: https://arxiv.org/pdf/2312.16720.pdf 问…

拿到年终奖后马上辞职,厚道吗?

拿到年终奖后马上辞职&#xff0c;厚道吗&#xff1f; 作为一个人&#xff0c;你首先要对自己负责&#xff0c;其次是对自己身边的人&#xff08;妻儿&#xff0c;家人&#xff0c;朋友&#xff09;负责。 你明明可以跳槽到有更好的职业发展你不去&#xff0c;是为不智&#…

【普中开发板】基于51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

基于普中开发板51单片机的篮球计分器液晶LCD1602显示 1.主要功能&#xff1a;讲解视频&#xff1a;2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接&#xff08;可点击&#xff09;&#xff1a; 基于51单片机的篮球计分器液晶LCD1602显示 ( pr…

tmux 最新版的编译安装

在官网下载最新的源码 Releases tmux/tmux # 安装编译前置依赖包 sudo apt install ncurses-dev libevent-dev wget https://github.com/tmux/tmux/releases/download/3.3a/tmux-3.3a.tar.gz tar -xf tmux-3.3a.tar.gz cd tmux-3.3a ./configure --enable-static # 采用静…

AspectJ入门(二)— 应用

AspectJ便于调试、测试和性能调整工作。定义的行为范围从简单的跟踪到分析&#xff0c;再到应用程序内部一致性到测试。AspectJ可以干净地模块化这类功能&#xff0c;从而可以在需要时轻松地启用和禁用这些功能。 1 基础 本节将继续介绍AspectJ到一些基础功能&#xff0c;为后…

水稻潜在产量估算解决方案

1.背景与技术路线 统计资料表明&#xff0c;尽管我国粮食单产已由 50 年代初期的 1.2t/ha 增加到如今的 5.2t/h&#xff0c;粮食产量增加了 4 倍&#xff0c;但我国人口的增长速度与气候变化导致的农业生产的不确定性&#xff0c; 在水稻收获指数保持稳定的情况下&#xff0c;…

drf知识--10

接口文档 # 后端把接口写好后&#xff1a; 登录接口&#xff1a;/api/v1/login ---> post---name pwd 注册接口 查询所有图书带过滤接口 # 前后端需要做对接&#xff0c;对接第一个东西就是这个接口文档&#xff0c;前端照着接口文档开发 公司3个人&#xff…

Nginx 的SSL证书配置

目录 1.申请域名&#xff0c;证书下载 2.准备站点源代码 3.修改nginx 对应网站的配置文件 4.修改 host 文件 http协议访问的网站默认会显示不安全&#xff0c;因为数据默认是明文传输的 https是httpssl&#xff0c;ssl是加密协议&#xff0c;通过证书来进行加密的&#xff…

pod进阶:

pod进阶: 探针* poststart prestop pod的生命周期:pod的状态 k8s的重启策略 Always deployment的yaml文件只能是Always pod的yaml三种模式都可以。不论正常退场还是非正常退出都重启 OnFailure:只有状态码非0才会重启&#xff0c;正常退出是不重启的 Never: 正常退出和…