一文分享5個(gè)新手也能實(shí)現(xiàn)的Python實(shí)用腳本(附完整代碼)
對于Python新手來說,學(xué)習(xí)語法的最終目的是“解決實(shí)際問題”,而簡單的小腳本既能鞏固基礎(chǔ)語法,又能帶來成就感,同時(shí)還能用到日常工作和學(xué)習(xí)中,一舉三得。
今天分享5個(gè)實(shí)用的Python小腳本,覆蓋文件處理、數(shù)據(jù)統(tǒng)計(jì)、日常工具等場景,每篇腳本都有完整代碼和詳細(xì)注釋,新手復(fù)制就能運(yùn)行,還能根據(jù)自己的需求修改優(yōu)化,快速提升編程能力~
腳本一:文件批量重命名(批量修改文件名,高效便捷)
適用場景:批量修改文件夾中的文件名稱(比如批量修改圖片、文檔、代碼文件的名稱),避免手動逐個(gè)修改,節(jié)省時(shí)間。
核心知識點(diǎn):os模塊(文件操作)、for循環(huán),掌握os.listdir()、os.rename()的用法。
import os # 導(dǎo)入os模塊,用于操作文件和文件夾
# 1. 定義要批量重命名的文件夾路徑(替換成你的文件夾路徑,注意路徑中的反斜杠用//或/)
folder_path = "D://test//images"
# 2. 獲取文件夾中的所有文件(返回一個(gè)列表,包含所有文件名)
file_list = os.listdir(folder_path)
# 3. 循環(huán)遍歷所有文件,逐個(gè)重命名
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)
# 執(zhí)行重命名操作
os.rename(old_path, new_path)
print(f"已修改:{file_name} → {new_file_name}")
print("批量重命名完成!")
使用說明:替換folder_path為自己的文件夾路徑,運(yùn)行腳本,即可將文件夾中的文件批量命名為“image_01.后綴”“image_02.后綴”,序號自動遞增。
腳本二:簡單文本統(tǒng)計(jì)工具(統(tǒng)計(jì)字?jǐn)?shù)、行數(shù)、空格數(shù))
適用場景:統(tǒng)計(jì)文本文件(.txt、.md等)的字?jǐn)?shù)、行數(shù)、空格數(shù),比如統(tǒng)計(jì)論文字?jǐn)?shù)、筆記字?jǐn)?shù),無需手動計(jì)數(shù)。
核心知識點(diǎn):文件讀寫(open()函數(shù))、字符串操作、for循環(huán)。
# 1. 定義要統(tǒng)計(jì)的文本文件路徑(替換成你的文件路徑)
file_path = "D://test//note.txt"
# 2. 初始化統(tǒng)計(jì)變量
line_count = 0 # 行數(shù)
char_count = 0 # 總字符數(shù)(包含空格、標(biāo)點(diǎn))
space_count = 0 # 空格數(shù)
word_count = 0 # 單詞數(shù)(以空格分隔)
# 3. 打開文件,讀取內(nèi)容(encoding="utf-8"避免中文亂碼)
with open(file_path, "r", encoding="utf-8") as f:
# 逐行讀取文件內(nèi)容
for line in f:
line_count += 1 # 每讀一行,行數(shù)+1
space_count += line.count(" ") # 統(tǒng)計(jì)當(dāng)前行的空格數(shù),累加到總空格數(shù)
char_count += len(line.replace("\n", "")) # 統(tǒng)計(jì)當(dāng)前行的字符數(shù)(去掉換行符)
word_count += len(line.split()) # 統(tǒng)計(jì)當(dāng)前行的單詞數(shù)(以空格分隔)
# 4. 輸出統(tǒng)計(jì)結(jié)果
print("="*30)
print(f"文本文件統(tǒng)計(jì)結(jié)果:")
print(f"總行數(shù):{line_count}")
print(f"總字符數(shù)(不含換行符):{char_count}")
print(f"總空格數(shù):{space_count}")
print(f"總單詞數(shù)(以空格分隔):{word_count}")
print("="*30)
使用說明:替換file_path為自己的文本文件路徑,運(yùn)行腳本,即可快速得到文本的各項(xiàng)統(tǒng)計(jì)數(shù)據(jù),支持中文文本。
腳本三:隨機(jī)密碼生成器(生成安全、復(fù)雜的密碼)
適用場景:生成隨機(jī)密碼(包含大小寫字母、數(shù)字、特殊符號),用于注冊賬號、登錄密碼,比手動設(shè)置的密碼更安全。
核心知識點(diǎn):random模塊(隨機(jī)生成)、字符串拼接、for循環(huán)。
import random # 導(dǎo)入random模塊,用于生成隨機(jī)數(shù)
import string # 導(dǎo)入string模塊,獲取大小寫字母、數(shù)字、特殊符號
# 1. 定義密碼包含的字符集(可根據(jù)需求修改,比如去掉特殊符號)
# 大小寫字母 + 數(shù)字 + 特殊符號(!@#$%^&*()_+-=)
chars = string.ascii_letters + string.digits + "!@#$%^&*()_+-="
# 2. 定義密碼長度(可自定義,比如8位、12位、16位,越長越安全)
password_length = 12
# 3. 生成隨機(jī)密碼(從chars中隨機(jī)選擇password_length個(gè)字符,拼接成字符串)
password = "".join(random.choice(chars) for _ in range(password_length))
# 4. 輸出生成的密碼
print(f"生成的隨機(jī)密碼:{password}")
拓展優(yōu)化:新手可以修改password_length,生成不同長度的密碼;也可以修改chars,去掉不需要的字符(比如不需要特殊符號,就刪除chars中的特殊符號部分)。
腳本四:批量提取文本中的郵箱地址
適用場景:從大量文本中,批量提取所有郵箱地址(比如從文檔、日志、網(wǎng)頁源碼中提取郵箱),避免手動查找,高效便捷。
核心知識點(diǎn):re模塊(正則表達(dá)式,用于匹配郵箱格式)、文件讀寫。
import re # 導(dǎo)入re模塊,用于正則表達(dá)式匹配
# 1. 定義要提取郵箱的文本文件路徑(替換成你的文件路徑)
file_path = "D://test//data.txt"
# 2. 定義郵箱正則表達(dá)式(匹配絕大多數(shù)郵箱格式,如xxx@xxx.com、xxx@xxx.cn)
email_pattern = r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+"
# 3. 讀取文本文件內(nèi)容
with open(file_path, "r", encoding="utf-8") as f:
text = f.read() # 讀取整個(gè)文件的內(nèi)容
# 4. 匹配文本中的所有郵箱地址,返回一個(gè)列表
emails = re.findall(email_pattern, text)
# 5. 輸出提取結(jié)果
print(f"共提取到 {len(emails)} 個(gè)郵箱地址:")
print("-"*50)
for email in emails:
print(email)
使用說明:替換file_path為自己的文本文件路徑,運(yùn)行腳本,即可提取文本中所有符合格式的郵箱地址,適合批量處理大量文本。
腳本五:簡易天氣預(yù)報(bào)查詢(輸入城市,查詢實(shí)時(shí)天氣)
適用場景:輸入城市名稱,查詢該城市的實(shí)時(shí)天氣(溫度、天氣狀況、風(fēng)力等),無需打開瀏覽器,直接運(yùn)行腳本即可查詢。
核心知識點(diǎn):requests模塊(發(fā)送網(wǎng)絡(luò)請求)、JSON數(shù)據(jù)解析,新手需要先安裝requests模塊(命令:pip install requests)。
import requests # 導(dǎo)入requests模塊,用于發(fā)送網(wǎng)絡(luò)請求
def get_weather(city):
# 免費(fèi)天氣接口(無需注冊,直接使用,返回JSON格式數(shù)據(jù))
url = f"https://v0.yiketianqi.com/api?unescape=1&version=v61&appid=79334739&appsecret=5S8IYq6Q&city={city}"
try:
# 發(fā)送GET請求,獲取天氣數(shù)據(jù)
response = requests.get(url)
response.raise_for_status() # 若請求失敗,拋出異常
weather_data = response.json() # 解析JSON數(shù)據(jù),轉(zhuǎn)為字典
# 提取需要的天氣信息
city_name = weather_data["city"] # 城市名稱
temp = weather_data["tem"] # 當(dāng)前溫度
weather = weather_data["wea"] # 天氣狀況(如晴、陰、雨)
wind = weather_data["win"] # 風(fēng)力
humidity = weather_data["humidity"]# 濕度
# 輸出天氣信息
print("="*30)
print(f"【{city_name} 實(shí)時(shí)天氣預(yù)報(bào)】")
print(f"當(dāng)前溫度:{temp}℃")
print(f"天氣狀況:{weather}")
print(f"風(fēng)力:{wind}")
print(f"濕度:{humidity}%")
print("="*30)
except Exception as e:
print(f"查詢失??!原因:{str(e)}")
# 主程序
if __name__ == "__main__":
# 輸入要查詢的城市名稱
city = input("請輸入要查詢天氣的城市(如北京、上海):")
# 調(diào)用函數(shù),查詢天氣
get_weather(city)
使用說明:
- 先打開終端,輸入命令
pip install requests,安裝requests模塊; - 運(yùn)行腳本,輸入城市名稱(如“北京”“廣州”),即可查詢該城市的實(shí)時(shí)天氣。
最后
以上5個(gè)小腳本,都是日常能用得上的實(shí)用工具,同時(shí)覆蓋了Python的核心基礎(chǔ)知識點(diǎn),新手可以先復(fù)制運(yùn)行,理解每一行代碼的含義,再嘗試修改優(yōu)化,比如給文件重命名腳本添加自定義前綴、給密碼生成器添加密碼強(qiáng)度檢測等。
到此這篇關(guān)于一文分享5個(gè)新手也能實(shí)現(xiàn)的Python實(shí)用腳本(附完整代碼)的文章就介紹到這了,更多相關(guān)Python實(shí)用腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+random模塊實(shí)現(xiàn)隨機(jī)抽樣
python的random庫,提供了很多隨機(jī)抽樣方法。本文將通過幾個(gè)示例為大家詳細(xì)講講random模塊實(shí)現(xiàn)隨機(jī)抽樣的方法,需要的可以參考一下2022-09-09
詳解Ubuntu環(huán)境下部署Django+uwsgi+nginx總結(jié)
這篇文章主要介紹了Ubuntu環(huán)境下部署Django+uwsgi+nginx總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
判斷Threading.start新線程是否執(zhí)行完畢的實(shí)例
這篇文章主要介紹了判斷Threading.start新線程是否執(zhí)行完畢的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認(rèn)值方式
這篇文章主要介紹了django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認(rèn)值方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
python新聞內(nèi)容爬蟲專用包newspaper使用實(shí)例圖文教程
Newspaper是GitHub排名第三的新聞爬蟲框架,操作簡單無需處理復(fù)雜參數(shù),支持35種語言及文本、圖片、摘要提取,但存在框架不穩(wěn)定、易被封鎖的問題,適合快速獲取新聞?wù)Z料而非大規(guī)模工程應(yīng)用2025-07-07
Python繪制散點(diǎn)圖之可視化神器pyecharts
這篇文章主要介紹了Python繪制散點(diǎn)圖之可視化神器pyecharts,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
python爬蟲實(shí)戰(zhàn)之爬取京東商城實(shí)例教程
這篇文章主要介紹了python爬取京東商城的相關(guān)資料,文中通過爬取一個(gè)實(shí)例頁面進(jìn)行了講解,通過示例代碼和圖文介紹的非常詳細(xì),相信對大家具有一定的參考價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-04-04

