5个实用Python小脚本,新手也能轻松实现(附完整代码)

对于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)
    

💡 使用说明:

  1. 先打开终端,输入命令 pip install requests,安装requests模块;

  2. 运行脚本,输入城市名称(如"北京""广州"),即可查询该城市的实时天气。

最后

以上5个小脚本,都是日常能用得上的实用工具,同时覆盖了Python的核心基础知识点,新手可以先复制运行,理解每一行代码的含义,再尝试修改优化,比如给文件重命名脚本添加自定义前缀、给密码生成器添加密码强度检测等。

相关推荐
yukai080082 小时前
【最后203篇系列】039 JWT使用
python
独好紫罗兰2 小时前
对python的再认识-基于数据结构进行-a006-元组-拓展
开发语言·数据结构·python
Dfreedom.2 小时前
图像直方图完全解析:从原理到实战应用
图像处理·python·opencv·直方图·直方图均衡化
铉铉这波能秀2 小时前
LeetCode Hot100数据结构背景知识之集合(Set)Python2026新版
数据结构·python·算法·leetcode·哈希算法
怒放吧德德3 小时前
Python3基础:基础实战巩固,从“会用”到“活用”
后端·python
aiguangyuan3 小时前
基于BERT的中文命名实体识别实战解析
人工智能·python·nlp
喵手3 小时前
Python爬虫实战:知识挖掘机 - 知乎问答与专栏文章的深度分页采集系统(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集知乎问答与专栏文章·采集知乎数据·采集知乎数据存储sqlite
铉铉这波能秀3 小时前
LeetCode Hot100数据结构背景知识之元组(Tuple)Python2026新版
数据结构·python·算法·leetcode·元组·tuple
kali-Myon3 小时前
2025春秋杯网络安全联赛冬季赛-day2
python·安全·web安全·ai·php·pwn·ctf