最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python腳本實現(xiàn)圖片文件批量命名

 更新時間:2025年02月26日 15:57:10   作者:laity17  
這篇文章主要為大家詳細介紹了一個用python第三方庫pillow寫的批量處理圖片命名的腳本,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下

前言

本文介紹一個用python第三方庫pillow寫的批量處理圖片命名的腳本,以及腳本對應的使用tkinter庫寫的GUI界面并把它打包成exe可執(zhí)行文件,打包成可執(zhí)行文件的好處就是它支持多種操作系統(tǒng),如 Windows、Linux 和 Mac OS 等。

源碼

批量處理圖片尺寸腳本源碼

import os # 文件管理模塊
import shutil # 文件復制模塊


# 定義圖片文件批量重命名函數(shù)
def rename_files(old_path, new_path,prefix,ext=['jpg','png','jpeg','gif','bmp','tif','tiff']):
    # 判斷新文件夾是否存在,不存在則創(chuàng)建
    if not os.path.exists(new_path):
        os.makedirs(new_path)
    # 原文件夾所有的文件
    old_file_list = os.listdir(old_path)
    # 遍歷所有的文件
    for num,file_name in enumerate(old_file_list):
        # 跳過非圖片文件   去掉下面兩行判斷條件,則會把所有文件都重命名
        if os.path.splitext(file_name)[1][1:] not in ext: # 獲取文件擴展名
            continue
        # 重命名文件
        new_file_name = f"{prefix}_{str(num)}{os.path.splitext(file_name)[1]}"
        # 構(gòu)建舊文件和新文件的完整路徑
        old_file_path = os.path.join(old_path, file_name)
        new_file_path = os.path.join(new_path, new_file_name)
        # 移動文件
        shutil.copy(old_file_path, new_file_path)
        print(f"{file_name} -> {new_file_name}")
        
### 下面調(diào)用函數(shù)并傳入?yún)?shù)選擇路徑和文件名前綴
# 源文件夾路徑
old_path = 'new_images'
# 新文件夾路徑
new_path = 'im2'
# 文件名前綴
prefix = 'heihei'
# 調(diào)用批量重命名函數(shù)
rename_files(old_path, new_path, prefix)

效果

GUI界面源碼

import os # 文件管理模塊
import shutil # 文件復制模塊
from tkinter import filedialog,messagebox,Label,Entry # 消息框模塊,文件選擇對話框模塊,標簽模塊,輸入框模塊
import tkinter as tk # GUI模塊

# 定義圖片文件批量重命名函數(shù)
def rename_files(old_path, new_path,prefix,ext=['jpg','png','jpeg','gif','bmp','tif','tiff']):
    # 判斷新文件夾是否存在,不存在則創(chuàng)建
    if not os.path.exists(new_path):
        os.makedirs(new_path)
    # 原文件夾所有的文件
    old_file_list = os.listdir(old_path)
    # 遍歷所有的文件
    for num,file_name in enumerate(old_file_list):
        # 跳過非圖片文件   去掉下面兩行判斷條件,則會把所有文件都重命名
        if os.path.splitext(file_name)[1][1:] not in ext: # 獲取文件擴展名
            continue
        # 重命名文件
        new_file_name = f"{prefix}_{str(num)}{os.path.splitext(file_name)[1]}"
        # 構(gòu)建舊文件和新文件的完整路徑
        old_file_path = os.path.join(old_path, file_name)
        new_file_path = os.path.join(new_path, new_file_name)
        # 移動文件
        shutil.copy(old_file_path, new_file_path)
        print(f"{file_name} -> {new_file_name}")
def rename_images_gui():
    # 彈出對話框讓用戶選擇文件夾
    old_path = filedialog.askdirectory()
    if not old_path:
        return
    new_path = filedialog.askdirectory(title="選擇新文件夾")
    if not new_path:
        return
    # 獲取輸入框中的值
    prefix = entry_prefix.get()
    if not prefix:
        messagebox.showerror("提示", "請輸入文件名前綴")
        return  # 如果沒有前綴,返回
    rename_files(old_path, new_path, prefix)
    messagebox.showinfo("提示", "批量重命名完成")


def on_rename_button_click():
    # 獲取輸入框中的值
    old_path = entry_old_path.get()
    new_path = entry_new_path.get()
    try:
        # 獲取將輸入框中的值
        prefix = entry_prefix.get()
    except ValueError:
        # 如果輸入框中的值不符合格式要求,則彈出錯誤提示框并返回
        messagebox.showerror("提示", "輸入格式不符合要求")
        return
    # 檢查輸入框中的路徑是否有效
    if not os.path.isdir(old_path):
        # 如果輸入框中的路徑不是有效目錄,則彈出錯誤提示框并返回
        messagebox.showerror("提示", "路徑無效")
        return
    # 調(diào)用圖片調(diào)整函數(shù)
    rename_files(old_path, new_path, prefix)
    # 彈出成功提示框
    messagebox.showinfo("Success", "圖片批量命名成功")


# 創(chuàng)建主窗口
root = tk.Tk()
# 設置窗口標題
root.title("圖片批量命名工具")

# 創(chuàng)建并放置標簽和輸入框
tk.Label(root, text="儲存原圖片的文件夾:").grid(row=0, column=0, padx=10, pady=10)
# 創(chuàng)建輸入框并放置
entry_old_path = tk.Entry(root, width=50)
# 設置輸入框的位置
entry_old_path.grid(row=0, column=1, padx=10, pady=10)
# 設置按鈕點擊事件,選擇文件夾并將路徑插入輸入框,如果輸入框已有內(nèi)容,則先清空,再插入,否則直接插入,使用lambda表達式簡化代碼,
tk.Button(root, text="瀏覽",
          command=lambda: entry_old_path.delete(0, tk.END) or entry_old_path.insert(0, filedialog.askdirectory())).grid(
    row=0, column=2, padx=10, pady=10)
# 創(chuàng)建并放置標簽和輸入框
tk.Label(root, text="儲存新圖片的文件夾:").grid(row=1, column=0, padx=10, pady=10)
# 創(chuàng)建輸入框并放置
entry_new_path = tk.Entry(root, width=50)
# 設置輸入框的位置
entry_new_path.grid(row=1, column=1, padx=10, pady=10)
# 設置按鈕點擊事件,選擇文件夾并將路徑插入輸入框,如果輸入框已有內(nèi)容,則先清空,再插入,否則直接插入,使用lambda表達式簡化代碼,
tk.Button(root, text="瀏覽",
          command=lambda: entry_new_path.delete(0, tk.END) or entry_new_path.insert(0, filedialog.askdirectory())).grid(
    row=1, column=2, padx=10, pady=10)
# 創(chuàng)建并放置標簽和輸入框
tk.Label(root, text="文件前綴").grid(row=3, column=0, padx=10, pady=10)
# 創(chuàng)建輸入框并放置
entry_prefix = tk.Entry(root, width=10)
# 設置輸入框的位置
entry_prefix.grid(row=3, column=1, padx=10, pady=10)
# 創(chuàng)建并放置調(diào)整尺寸按鈕
rename_button = tk.Button(root, text="運行", command=on_rename_button_click)
# 設置按鈕的位置
rename_button.grid(row=4, column=0, columnspan=3, pady=20)
# 運行主循環(huán)
root.mainloop()

效果

打包成.exe可執(zhí)行文件

需要安裝python第三方庫pyinstaller

pip install pyinstaller

在文件所在目錄的終端輸入下面的命令,就可以把把剛剛的GUI界面打包成一個.exe可執(zhí)行文件。

pyinsataller filename

filename是要打包的源文件的名稱 比如我要打包我寫的圖片批量命名的腳本打包成.exe可執(zhí)行文件,可以在終端使用下面的命令:

pyinstaller study_2.py  

效果

.exe可執(zhí)行文件運行出來的結(jié)果和GUI界面是一致的

到此這篇關(guān)于Python腳本實現(xiàn)圖片文件批量命名的文章就介紹到這了,更多相關(guān)Python圖片批量命名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python高效實現(xiàn)讀寫文件和處理CSV/JSON詳解

    Python高效實現(xiàn)讀寫文件和處理CSV/JSON詳解

    本篇用一個日志分析器作為貫穿場景,從最基礎的?open()?函數(shù)講起,覆蓋文本讀寫,CSV,JSON,路徑處理,以及幾個在生產(chǎn)代碼里真正會踩的坑,希望對大家有所幫助
    2026-04-04
  • 解決Python中的ModuleNotFoundError:?No?module?named?'paddle'錯誤

    解決Python中的ModuleNotFoundError:?No?module?named?'pad

    你是否在嘗試導入`paddle`模塊時遇到了"ModuleNotFoundError:?No?module?named?'paddle'"這個錯誤?別擔心,我們的指南會告訴你如何解決,這就像找到丟失的鑰匙一樣簡單,讓我們一起來看看如何解決這個問題吧!
    2024-03-03
  • python基礎之文件操作和異常處理

    python基礎之文件操作和異常處理

    這篇文章主要介紹了python基礎之文件操作和異常處理,文中有非常詳細的代碼示例,對正在學習python基礎的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-04-04
  • 基于KL散度、JS散度以及交叉熵的對比

    基于KL散度、JS散度以及交叉熵的對比

    這篇文章主要介紹了基于KL散度、JS散度以及交叉熵的對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 如何理解及使用Python閉包

    如何理解及使用Python閉包

    閉包是優(yōu)雅的 Python 結(jié)構(gòu),在本文中,我們將了解它們,如何定義閉包,為什么以及何時使用它們.但是在討論什么是閉包之前,我們必須首先理解什么是嵌套函數(shù),以及作用域規(guī)則是如何為它們工作的.那么讓我們開始吧,需要的朋友可以參考下
    2021-06-06
  • python3制作捧腹網(wǎng)段子頁爬蟲

    python3制作捧腹網(wǎng)段子頁爬蟲

    網(wǎng)上的Python教程大都是2.X版本的,python2.X和python3.X相比較改動比較大,好多庫的用法不太一樣,我安裝的是python3.X,我們來看看詳細的例子
    2017-02-02
  • 在OpenCV里使用Camshift算法的實現(xiàn)

    在OpenCV里使用Camshift算法的實現(xiàn)

    這篇文章主要介紹了在OpenCV里使用Camshift算法的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • python使用JSON模塊進行數(shù)據(jù)處理(編碼解碼)

    python使用JSON模塊進行數(shù)據(jù)處理(編碼解碼)

    這篇文章主要為大家介紹了python使用JSON模塊進行數(shù)據(jù)處理編碼解碼的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • python SVD壓縮圖像的實現(xiàn)代碼

    python SVD壓縮圖像的實現(xiàn)代碼

    這篇文章主要介紹了python SVD壓縮圖像的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Python列表轉(zhuǎn)一維DataFrame的完整指南

    Python列表轉(zhuǎn)一維DataFrame的完整指南

    在數(shù)據(jù)處理領(lǐng)域,Pandas的DataFrame是當之無愧的王者,本文將用5個核心方法,教你優(yōu)雅地將一維列表轉(zhuǎn)換為Pandas DataFrame,感興趣的可以了解下
    2025-04-04

最新評論

五寨县| 苍山县| 辽宁省| 万载县| 登封市| 深圳市| 永川市| 扎赉特旗| 普兰店市| 措勤县| 周至县| 遂平县| 青田县| 通城县| 诏安县| 锦州市| 平泉县| 墨竹工卡县| 双鸭山市| 西和县| 富顺县| 准格尔旗| 从江县| 新化县| 海伦市| 和田县| 邵东县| 泰州市| 沙洋县| 定襄县| 正镶白旗| 赣榆县| 黎川县| 新蔡县| 丹阳市| 蓬安县| 米林县| 博乐市| 日照市| 和政县| 太原市|