对于Python新手来说,学习语法的最终目的是"解决实际问题",而简单的小脚本既能巩固基础语法,又能带来成就感,同时还能用到日常工作和学习中,一举三得。
今天分享5个实用的Python小脚本,覆盖文件处理、数据统计、日常工具等场景,每篇脚本都有完整代码和详细注释,新手复制就能运行,还能根据自己的需求修改优化,快速提升编程能力~
脚本一:文件批量重命名(批量修改文件名,高效便捷)
适用场景:批量修改文件夹中的文件名称(比如批量修改图片、文档、代码文件的名称),避免手动逐个修改,节省时间。
核心知识点:os模块(文件操作)、for循环,掌握os.listdir()、os.rename()的用法。
python
import os # 导入os模块,用于操作文件和文件夹
# 1. 定义要批量重命名的文件夹路径(替换成你的文件夹路径,注意路径中的反斜杠用//或/)
folder_path = "D://test//images"
# 2. 获取文件夹中的所有文件(返回一个列表,包含所有文件名)
file_list = os.listdir(folder_path)
# 3. 循环遍历所有文件,逐个重命名
for index, file_name in enumerate(file_list):
# 跳过文件夹(只重命名文件,不处理子文件夹)
if os.path.isfile(os.path.join(folder_path, file_name)):
# 分割文件名和后缀(比如"1.jpg"分割成["1", "jpg"])
file_ext = os.path.splitext(file_name)[1]
# 定义新的文件名(比如"image_01.jpg"、"image_02.jpg",index从0开始,+1让序号从1开始)
new_file_name = f"image_{index+1:02d}{file_ext}"
# 拼接旧文件路径和新文件路径
old_path = os.path.join(folder_path, file_name)
new_path = os.path.join(folder_path, new_file_name)
# 执行重命名操作
os.rename(old_path, new_path)
print(f"已修改:{file_name} → {new_file_name}")
print("批量重命名完成!")
💡 使用说明:替换folder_path为自己的文件夹路径,运行脚本,即可将文件夹中的文件批量命名为"image_01.后缀""image_02.后缀",序号自动递增。
脚本二:简单文本统计工具(统计字数、行数、空格数)
适用场景:统计文本文件(.txt、.md等)的字数、行数、空格数,比如统计论文字数、笔记字数,无需手动计数。
核心知识点:文件读写(open()函数)、字符串操作、for循环。
python
# 1. 定义要统计的文本文件路径(替换成你的文件路径)
file_path = "D://test//note.txt"
# 2. 初始化统计变量
line_count = 0 # 行数
char_count = 0 # 总字符数(包含空格、标点)
space_count = 0 # 空格数
word_count = 0 # 单词数(以空格分隔)
# 3. 打开文件,读取内容(encoding="utf-8"避免中文乱码)
with open(file_path, "r", encoding="utf-8") as f:
# 逐行读取文件内容
for line in f:
line_count += 1 # 每读一行,行数+1
space_count += line.count(" ") # 统计当前行的空格数,累加到总空格数
char_count += len(line.replace("\n", "")) # 统计当前行的字符数(去掉换行符)
word_count += len(line.split()) # 统计当前行的单词数(以空格分隔)
# 4. 输出统计结果
print("="*30)
print(f"文本文件统计结果:")
print(f"总行数:{line_count}")
print(f"总字符数(不含换行符):{char_count}")
print(f"总空格数:{space_count}")
print(f"总单词数(以空格分隔):{word_count}")
print("="*30)
💡 使用说明:替换file_path为自己的文本文件路径,运行脚本,即可快速得到文本的各项统计数据,支持中文文本。
脚本三:随机密码生成器(生成安全、复杂的密码)
适用场景:生成随机密码(包含大小写字母、数字、特殊符号),用于注册账号、登录密码,比手动设置的密码更安全。
核心知识点:random模块(随机生成)、字符串拼接、for循环。
python
import random # 导入random模块,用于生成随机数
import string # 导入string模块,获取大小写字母、数字、特殊符号
# 1. 定义密码包含的字符集(可根据需求修改,比如去掉特殊符号)
# 大小写字母 + 数字 + 特殊符号(!@#$%^&*()_+-=)
chars = string.ascii_letters + string.digits + "!@#$%^&*()_+-="
# 2. 定义密码长度(可自定义,比如8位、12位、16位,越长越安全)
password_length = 12
# 3. 生成随机密码(从chars中随机选择password_length个字符,拼接成字符串)
password = "".join(random.choice(chars) for _ in range(password_length))
# 4. 输出生成的密码
print(f"生成的随机密码:{password}")
💡 拓展优化:新手可以修改password_length,生成不同长度的密码;也可以修改chars,去掉不需要的字符(比如不需要特殊符号,就删除chars中的特殊符号部分)。
脚本四:批量提取文本中的邮箱地址
适用场景:从大量文本中,批量提取所有邮箱地址(比如从文档、日志、网页源码中提取邮箱),避免手动查找,高效便捷。
核心知识点:re模块(正则表达式,用于匹配邮箱格式)、文件读写。
python
import re # 导入re模块,用于正则表达式匹配
# 1. 定义要提取邮箱的文本文件路径(替换成你的文件路径)
file_path = "D://test//data.txt"
# 2. 定义邮箱正则表达式(匹配绝大多数邮箱格式,如xxx@xxx.com、xxx@xxx.cn)
email_pattern = r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+"
# 3. 读取文本文件内容
with open(file_path, "r", encoding="utf-8") as f:
text = f.read() # 读取整个文件的内容
# 4. 匹配文本中的所有邮箱地址,返回一个列表
emails = re.findall(email_pattern, text)
# 5. 输出提取结果
print(f"共提取到 {len(emails)} 个邮箱地址:")
print("-"*50)
for email in emails:
print(email)
💡 使用说明:替换file_path为自己的文本文件路径,运行脚本,即可提取文本中所有符合格式的邮箱地址,适合批量处理大量文本。
脚本五:简易天气预报查询(输入城市,查询实时天气)
适用场景:输入城市名称,查询该城市的实时天气(温度、天气状况、风力等),无需打开浏览器,直接运行脚本即可查询。
核心知识点:requests模块(发送网络请求)、JSON数据解析,新手需要先安装requests模块(命令:pip install requests)。
python
import requests # 导入requests模块,用于发送网络请求
def get_weather(city):
# 免费天气接口(无需注册,直接使用,返回JSON格式数据)
url = f"https://v0.yiketianqi.com/api?unescape=1&version=v61&appid=79334739&appsecret=5S8IYq6Q&city={city}"
try:
# 发送GET请求,获取天气数据
response = requests.get(url)
response.raise_for_status() # 若请求失败,抛出异常
weather_data = response.json() # 解析JSON数据,转为字典
# 提取需要的天气信息
city_name = weather_data["city"] # 城市名称
temp = weather_data["tem"] # 当前温度
weather = weather_data["wea"] # 天气状况(如晴、阴、雨)
wind = weather_data["win"] # 风力
humidity = weather_data["humidity"]# 湿度
# 输出天气信息
print("="*30)
print(f"【{city_name} 实时天气预报】")
print(f"当前温度:{temp}℃")
print(f"天气状况:{weather}")
print(f"风力:{wind}")
print(f"湿度:{humidity}%")
print("="*30)
except Exception as e:
print(f"查询失败!原因:{str(e)}")
# 主程序
if __name__ == "__main__":
# 输入要查询的城市名称
city = input("请输入要查询天气的城市(如北京、上海):")
# 调用函数,查询天气
get_weather(city)
💡 使用说明:
-
先打开终端,输入命令
pip install requests,安装requests模块; -
运行脚本,输入城市名称(如"北京""广州"),即可查询该城市的实时天气。
最后
以上5个小脚本,都是日常能用得上的实用工具,同时覆盖了Python的核心基础知识点,新手可以先复制运行,理解每一行代码的含义,再尝试修改优化,比如给文件重命名脚本添加自定义前缀、给密码生成器添加密码强度检测等。