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

基于Python開發(fā)簡(jiǎn)單的圖片定位導(dǎo)出小程序

 更新時(shí)間:2025年09月24日 08:36:39   作者:Jack電子實(shí)驗(yàn)室  
在日常工作中,我們經(jīng)常需要從大量圖片文件中篩選出包含特定名稱或編號(hào)的圖片,所以本文將使用Python開發(fā)一個(gè)圖片定位導(dǎo)出小程序,感興趣的小伙伴可以了解下

在日常工作中,我們經(jīng)常需要從大量圖片文件中篩選出包含特定名稱或編號(hào)的圖片,比如從一批產(chǎn)品圖片中找出特定型號(hào)的圖片,或者從系列照片中提取特定編號(hào)的照片。手動(dòng)查找不僅效率低下,還容易出錯(cuò)。今天我要分享一個(gè)自己開發(fā)的圖片定位導(dǎo)出小程序,它能幫助你快速篩選并復(fù)制所需的圖片文件。

工具功能介紹

這個(gè)圖片定位導(dǎo)出工具具有以下特點(diǎn):

  • 圖形化界面操作,簡(jiǎn)單易用
  • 支持批量輸入多個(gè)搜索關(guān)鍵詞(每行一個(gè))
  • 精確匹配圖片文件名,避免部分匹配的誤判
  • 自動(dòng)創(chuàng)建目標(biāo)文件夾并復(fù)制匹配的圖片
  • 詳細(xì)的結(jié)果反饋,包括成功復(fù)制的文件、未找到的關(guān)鍵詞以及找到多個(gè)匹配的關(guān)鍵詞
  • 支持多種圖片格式(jpg、jpeg、png、gif、bmp、tiff、webp)

核心技術(shù)實(shí)現(xiàn)

開發(fā)環(huán)境

  • Python 3.x
  • 依賴庫(kù):tkinter(用于GUI)、os(文件操作)、shutil(文件復(fù)制)、re(正則表達(dá)式)

核心代碼解析

1. 圖片復(fù)制功能實(shí)現(xiàn)

核心函數(shù)copy_images負(fù)責(zé)處理圖片的查找和復(fù)制邏輯:

def copy_images(search_terms, source_dir=None, target_dir=None):
    """復(fù)制包含指定名稱的圖片文件"""
    # 處理目錄默認(rèn)值
    if not source_dir:
        source_dir = os.getcwd()
    if not target_dir:
        target_dir = os.path.join(source_dir, "篩選出的圖片")
    
    # 確保目標(biāo)文件夾存在
    if not os.path.exists(target_dir):
        os.makedirs(target_dir)
    
    # 定義圖片文件擴(kuò)展名
    image_extensions = ('.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.webp')
    
    # 統(tǒng)計(jì)和跟蹤變量
    copied_count = 0
    copied_files = []
    term_matches = {term.strip(): [] for term in search_terms if term.strip()}
    not_found_terms = []
    multiple_matches_terms = {}
    
    # 導(dǎo)入正則表達(dá)式模塊
    import re
    
    # 遍歷源目錄中的所有文件
    for filename in os.listdir(source_dir):
        # 檢查是否是圖片文件
        if filename.lower().endswith(image_extensions):
            # 檢查文件名是否包含任何搜索詞
            for term in search_terms:
                term = term.strip()
                if term:
                    file_base = os.path.splitext(filename)[0]  # 獲取不帶擴(kuò)展名的文件名
                    
                    # 精確匹配邏輯
                    is_match = False
                    if term == file_base:  # 完全匹配文件名
                        is_match = True
                    elif term in re.findall(r'\d+', file_base):  # 精確匹配文件名中的某個(gè)數(shù)字部分
                        is_match = True
                    elif f"{term}-" in filename or f"-{term}." in filename:  # 匹配特定格式
                        is_match = True
                        
                    if is_match:
                        # 記錄匹配信息
                        term_matches[term].append(filename)
                        
                        # 復(fù)制文件
                        source_path = os.path.join(source_dir, filename)
                        target_path = os.path.join(target_dir, filename)
                        shutil.copy2(source_path, target_path)  # 保留文件元數(shù)據(jù)
                        copied_count += 1
                        if filename not in copied_files:
                            copied_files.append(filename)
    
    # 處理匹配結(jié)果
    for term, matches in term_matches.items():
        if not matches:
            not_found_terms.append(term)
        elif len(matches) > 1:
            multiple_matches_terms[term] = matches
    
    return copied_count, copied_files, target_dir, not_found_terms, multiple_matches_terms

這個(gè)函數(shù)的關(guān)鍵在于精確匹配邏輯,通過(guò)三種方式確保匹配準(zhǔn)確性:

  • 完全匹配文件名(不含擴(kuò)展名)
  • 精確匹配文件名中的數(shù)字部分(避免14匹配到140)
  • 匹配特定格式(如"term-“或”-term."的形式)

2. GUI界面實(shí)現(xiàn)

使用Tkinter創(chuàng)建圖形化界面,讓操作更加直觀:

class ImageCopyApp:
    def __init__(self, root):
        self.root = root
        self.root.title("圖片復(fù)制工具")
        self.root.geometry("600x500")
        self.root.resizable(True, True)
        
        # 創(chuàng)建界面元素
        main_frame = tk.Frame(root, padx=10, pady=10)
        main_frame.pack(fill=tk.BOTH, expand=True)
        
        # 說(shuō)明標(biāo)簽
        instruction_label = tk.Label(
            main_frame, 
            text="請(qǐng)輸入要查找的圖片名稱序列,每行一個(gè)。程序?qū)?fù)制包含這些名稱的圖片到新文件夾。\n如果輸入的名稱沒(méi)有找到匹配,或者找到多個(gè)匹配結(jié)果,將會(huì)在結(jié)果中提示。",
            wraplength=580, 
            justify="left",
            pady=10,
            font=("SimHei", 10)
        )
        instruction_label.pack(fill=tk.X)
        
        # 輸入框
        self.input_frame = tk.Frame(main_frame)
        self.input_frame.pack(fill=tk.BOTH, expand=True)
        
        self.search_text = scrolledtext.ScrolledText(self.input_frame, height=10)
        self.search_text.pack(fill=tk.BOTH, expand=True, pady=5)
        self.search_text.insert(tk.END, "XS977-14\nXS977-25\nXS977-26")  # 默認(rèn)示例
        
        # 按鈕
        button_frame = tk.Frame(main_frame)
        button_frame.pack(fill=tk.X, pady=10)
        
        self.copy_button = tk.Button(
            button_frame, 
            text="復(fù)制圖片", 
            command=self.copy_images,
            width=15,
            height=2
        )
        self.copy_button.pack(side=tk.LEFT, padx=5)
        
        # 結(jié)果顯示
        result_label = tk.Label(main_frame, text="操作結(jié)果:")
        result_label.pack(anchor=tk.W)
        
        self.result_text = scrolledtext.ScrolledText(main_frame, height=10)
        self.result_text.pack(fill=tk.BOTH, expand=True, pady=5)
        self.result_text.config(state=tk.DISABLED)

界面設(shè)計(jì)遵循簡(jiǎn)潔實(shí)用原則,主要包含三個(gè)部分:操作說(shuō)明、關(guān)鍵詞輸入?yún)^(qū)和結(jié)果顯示區(qū)。

3. 結(jié)果處理與反饋

程序會(huì)提供詳細(xì)的操作結(jié)果反饋,包括:

  • 成功復(fù)制的文件數(shù)量和目標(biāo)路徑
  • 已復(fù)制的文件列表
  • 未找到匹配的搜索詞
  • 找到多個(gè)匹配的搜索詞及其匹配結(jié)果

如果哪個(gè)有問(wèn)題 會(huì)做出提示

使用方法

運(yùn)行程序,界面將顯示一個(gè)文本輸入框和操作按鈕

在輸入框中每行輸入一個(gè)要查找的圖片名稱或編號(hào)(支持示例中的格式)

點(diǎn)擊"復(fù)制圖片"按鈕

程序會(huì)在當(dāng)前目錄創(chuàng)建"篩選出的圖片"文件夾,并將匹配的圖片復(fù)制到該文件夾

操作結(jié)果會(huì)顯示在下方的結(jié)果區(qū)域,包括成功復(fù)制的文件、未找到的關(guān)鍵詞等信息

適用場(chǎng)景

  • 攝影師篩選特定編號(hào)的照片
  • 設(shè)計(jì)師整理系列設(shè)計(jì)圖
  • 電商從業(yè)者提取特定產(chǎn)品圖片
  • 任何需要從大量圖片中篩選特定文件的場(chǎng)景

程序已經(jīng)打包 即使電腦沒(méi)有安裝python也可以使用

到此這篇關(guān)于基于Python開發(fā)簡(jiǎn)單的圖片定位導(dǎo)出小程序的文章就介紹到這了,更多相關(guān)Python圖片定位導(dǎo)出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 讀寫json中文ASCII亂碼問(wèn)題的解決方法

    讀寫json中文ASCII亂碼問(wèn)題的解決方法

    下面小編就為大家?guī)?lái)一篇讀寫json中文ASCII亂碼問(wèn)題的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • python 函數(shù)內(nèi)部修改外部變量的方法

    python 函數(shù)內(nèi)部修改外部變量的方法

    今天小編就為大家分享一篇python 函數(shù)內(nèi)部修改外部變量的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python處理警告范例代碼示例及解釋

    Python處理警告范例代碼示例及解釋

    在Python中,可通過(guò)warnings庫(kù)觸發(fā)并處理警告,警告用于提示用戶代碼中的潛在問(wèn)題而非異常,本文介紹如何使用warnings庫(kù)導(dǎo)入、定義警告觸發(fā)函數(shù),并通過(guò)handle_warnings函數(shù)捕獲和處理不同類型的警告,需要的朋友可以參考下
    2024-10-10
  • python封裝json格式字符串并處理單雙引號(hào)問(wèn)題

    python封裝json格式字符串并處理單雙引號(hào)問(wèn)題

    大家好,本篇文章主要講的是python封裝json格式字符串并處理單雙引號(hào)問(wèn)題,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • python將文本轉(zhuǎn)換成圖片輸出的方法

    python將文本轉(zhuǎn)換成圖片輸出的方法

    這篇文章主要介紹了python將文本轉(zhuǎn)換成圖片輸出的方法,涉及Python操作文本及圖片的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Pytorch參數(shù)注冊(cè)和nn.ModuleList nn.ModuleDict的問(wèn)題

    Pytorch參數(shù)注冊(cè)和nn.ModuleList nn.ModuleDict的問(wèn)題

    這篇文章主要介紹了Pytorch參數(shù)注冊(cè)和nn.ModuleList nn.ModuleDict的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 詳解python的sorted函數(shù)對(duì)字典按key排序和按value排序

    詳解python的sorted函數(shù)對(duì)字典按key排序和按value排序

    這篇文章主要介紹了詳解python的sorted函數(shù)對(duì)字典按key排序和按value排序,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換

    python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換

    用python處理地理位置是非常常見(jiàn)的需求,下面這篇文章主要給大家介紹了關(guān)于python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python中的ConfigParser模塊使用詳解

    Python中的ConfigParser模塊使用詳解

    這篇文章主要介紹了Python中的ConfigParser模塊的使用,ConfigParser模塊主要被用來(lái)讀寫配置模塊,需要的朋友可以參考下
    2015-05-05
  • python簡(jiǎn)單獲取數(shù)組元素個(gè)數(shù)的方法

    python簡(jiǎn)單獲取數(shù)組元素個(gè)數(shù)的方法

    這篇文章主要介紹了python簡(jiǎn)單獲取數(shù)組元素個(gè)數(shù)的方法,實(shí)例分析了Python中l(wèi)en方法的相關(guān)使用技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-07-07

最新評(píng)論

和林格尔县| 绥滨县| 长泰县| 香河县| 汨罗市| 江山市| 黄石市| 宣威市| 波密县| 白银市| 桑植县| 金秀| 山东省| 庄河市| 定兴县| 长沙县| 兴化市| 桐乡市| 枣强县| 玉屏| 上饶市| 潮安县| 九龙城区| 沂源县| 怀仁县| 宁陕县| 武汉市| 连江县| 洛南县| 沁阳市| 五莲县| 敦化市| 大洼县| 临江市| 噶尔县| 芜湖县| 扎鲁特旗| 奈曼旗| 南涧| 台东县| 都匀市|