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

