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

使用Python創(chuàng)建一個文件夾結(jié)構(gòu)生成器

 更新時間:2025年01月08日 09:42:19   作者:winfredzhang  
這篇文章主要為大家詳細介紹了如何使用Python創(chuàng)建一個文件夾結(jié)構(gòu)生成器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

在本文中,我們將探討如何利用Python的wxPython庫來創(chuàng)建一個圖形用戶界面(GUI)應(yīng)用程序,該應(yīng)用程序允許用戶通過簡單的文本輸入來創(chuàng)建復(fù)雜的文件夾結(jié)構(gòu)。這個程序?qū)ㄒ粋€文本框用于輸入文件夾結(jié)構(gòu)描述,一個按鈕來觸發(fā)結(jié)構(gòu)創(chuàng)建過程,以及一個目錄選擇器來指定目標文件夾。

全部代碼

import wx
import os
import re

class FolderStructureCreator(wx.Frame):
    def __init__(self, parent, title):
        super().__init__(parent, title=title, size=(600, 400))

        # 創(chuàng)建面板
        panel = wx.Panel(self)

        # 創(chuàng)建控件
        self.memo = wx.TextCtrl(panel, style=wx.TE_MULTILINE, size=(500, 200), pos=(50, 50))
        self.create_button = wx.Button(panel, label="創(chuàng)建", pos=(50, 270))
        self.folder_picker = wx.DirPickerCtrl(panel, path="", size=(500, -1), pos=(50, 300))

        # 綁定事件
        self.create_button.Bind(wx.EVT_BUTTON, self.on_create)

        self.Show()

    def on_create(self, event):
        # 獲取目標文件夾路徑
        target_folder = self.folder_picker.GetPath()
        if not target_folder:
            wx.MessageBox("請選擇目標文件夾", "錯誤", wx.ICON_ERROR)
            return
        
        # 獲取輸入的文件夾結(jié)構(gòu)描述
        folder_structure = self.memo.GetValue()
        if not folder_structure:
            wx.MessageBox("請輸入文件夾結(jié)構(gòu)描述", "錯誤", wx.ICON_ERROR)
            return
        
        # 根據(jù)文件夾結(jié)構(gòu)描述創(chuàng)建文件夾和文件
        self.create_structure(target_folder, folder_structure)

    def create_structure(self, base_path, structure):
        lines = structure.splitlines()
        path_stack = [base_path]  # 初始化路徑棧

        for line in lines:
            # 使用正則表達式移除符號
            clean_line = re.sub(r'[├└│─]+', '', line).strip()

            # 跳過空行
            if not clean_line:
                continue

            indent_level = len(line) - len(line.lstrip(' '))  # 計算縮進級別
            while len(path_stack) > indent_level + 1:
                path_stack.pop()  # 回退到正確的父路徑

            if clean_line.endswith('/'):
                # 創(chuàng)建文件夾
                folder_name = clean_line.rstrip('/')
                new_folder_path = os.path.join(path_stack[-1], folder_name)
                if not os.path.exists(new_folder_path):
                    os.makedirs(new_folder_path)
                path_stack.append(new_folder_path)
            elif '.' in clean_line:
                # 創(chuàng)建文件
                file_name = clean_line
                new_file_path = os.path.join(path_stack[-1], file_name)
                try:
                    with open(new_file_path, 'w') as f:
                        f.write('')  # 創(chuàng)建空文件
                except PermissionError as e:
                    wx.MessageBox(f"權(quán)限錯誤,無法創(chuàng)建文件:{new_file_path}\n{str(e)}", "錯誤", wx.ICON_ERROR)
                    return

        wx.MessageBox("文件夾和文件創(chuàng)建完成", "成功", wx.ICON_INFORMATION)


if __name__ == "__main__":
    app = wx.App(False)
    FolderStructureCreator(None, title="文件夾結(jié)構(gòu)創(chuàng)建器")
    app.MainLoop()

步驟1:安裝wxPython

首先,你需要在你的Python環(huán)境中安裝wxPython庫。你可以通過pip安裝它:

pip install wxPython

步驟2:創(chuàng)建主窗口類

接下來,我們定義一個名為FolderStructureCreator的類,該類繼承自wx.Frame。在這個類的構(gòu)造函數(shù)中,我們設(shè)置窗口的大小和標題,并初始化各種控件(如文本框、按鈕和目錄選擇器)。

import wx
import os
import re

class FolderStructureCreator(wx.Frame):
    def __init__(self, parent, title):
        super().__init__(parent, title=title, size=(600, 400))
        
        # 創(chuàng)建面板
        panel = wx.Panel(self)
        
        # 創(chuàng)建控件
        self.memo = wx.TextCtrl(panel, style=wx.TE_MULTILINE, size=(500, 200), pos=(50, 50))
        self.create_button = wx.Button(panel, label="創(chuàng)建", pos=(50, 270))
        self.folder_picker = wx.DirPickerCtrl(panel, path="", size=(500, -1), pos=(50, 300))
        
        # 綁定事件
        self.create_button.Bind(wx.EVT_BUTTON, self.on_create)
        
        self.Show()

步驟3:實現(xiàn)創(chuàng)建功能

在on_create方法中,我們獲取用戶輸入的目標文件夾路徑和文件夾結(jié)構(gòu)描述,然后調(diào)用create_structure方法來實際創(chuàng)建文件夾和文件。

    def on_create(self, event):
        target_folder = self.folder_picker.GetPath()
        if not target_folder:
            wx.MessageBox("請選擇目標文件夾", "錯誤", wx.ICON_ERROR)
            return
        
        folder_structure = self.memo.GetValue()
        if not folder_structure:
            wx.MessageBox("請輸入文件夾結(jié)構(gòu)描述", "錯誤", wx.ICON_ERROR)
            return
        
        self.create_structure(target_folder, folder_structure)

步驟4:解析文件夾結(jié)構(gòu)描述并創(chuàng)建文件夾/文件

create_structure方法負責解析用戶輸入的文件夾結(jié)構(gòu)描述,并根據(jù)這些信息在指定的基路徑下創(chuàng)建相應(yīng)的文件夾和文件。

    def create_structure(self, base_path, structure):
        lines = structure.splitlines()
        path_stack = [base_path]
        
        for line in lines:
            clean_line = re.sub(r'[├└│─]+', '', line).strip()
            if not clean_line:
                continue
            
            indent_level = len(line) - len(line.lstrip(' '))
            while len(path_stack) > indent_level + 1:
                path_stack.pop()
            
            if clean_line.endswith('/'):
                folder_name = clean_line.rstrip('/')
                new_folder_path = os.path.join(path_stack[-1], folder_name)
                if not os.path.exists(new_folder_path):
                    os.makedirs(new_folder_path)
                path_stack.append(new_folder_path)
            elif '.' in clean_line:
                file_name = clean_line
                new_file_path = os.path.join(path_stack[-1], file_name)
                try:
                    with open(new_file_path, 'w') as f:
                        f.write('')
                except PermissionError:
                    wx.MessageBox("權(quán)限不足,無法創(chuàng)建文件", "錯誤", wx.ICON_ERROR)

運行結(jié)果

以上就是如何使用Python和wxPython創(chuàng)建一個文件夾結(jié)構(gòu)生成器的完整指南。這個工具可以大大簡化在文件系統(tǒng)中組織和管理文件的過程,特別是對于需要快速建立復(fù)雜文件夾結(jié)構(gòu)的開發(fā)人員來說非常有用。

到此這篇關(guān)于使用Python創(chuàng)建一個文件夾結(jié)構(gòu)生成器的文章就介紹到這了,更多相關(guān)Python創(chuàng)建文件夾結(jié)構(gòu)生成器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 讀取目錄下csv文件并繪制曲線v111的方法

    python 讀取目錄下csv文件并繪制曲線v111的方法

    今天小編就為大家分享一篇python 讀取目錄下csv文件并繪制曲線v111的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 從DataFrame中提取出Series或DataFrame對象的方法

    從DataFrame中提取出Series或DataFrame對象的方法

    今天小編就為大家分享一篇從DataFrame中提取出Series或DataFrame對象的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Django實現(xiàn)網(wǎng)頁分頁功能

    Django實現(xiàn)網(wǎng)頁分頁功能

    這篇文章主要介紹了Django實現(xiàn)網(wǎng)頁分頁功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • python給視頻添加背景音樂并改變音量的具體方法

    python給視頻添加背景音樂并改變音量的具體方法

    在本篇文章里小編給大家整理的是關(guān)于python給視頻添加背景音樂并改變音量的具體方法,需要的朋友們可以參考下。
    2020-07-07
  • 在OpenCV里實現(xiàn)條碼區(qū)域識別的方法示例

    在OpenCV里實現(xiàn)條碼區(qū)域識別的方法示例

    這篇文章主要介紹了在OpenCV里實現(xiàn)條碼區(qū)域識別的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python使用Pandas讀寫Excel實例解析

    Python使用Pandas讀寫Excel實例解析

    這篇文章主要介紹了Python使用Pandas讀寫Excel實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 如何用 Python 處理不平衡數(shù)據(jù)集

    如何用 Python 處理不平衡數(shù)據(jù)集

    這篇文章主要介紹了如何用 Python 處理不平衡數(shù)據(jù)集,幫助大家更好的利用python進行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2021-01-01
  • Python如何合并多個字典或映射

    Python如何合并多個字典或映射

    這篇文章主要介紹了Python如何合并多個字典或映射,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 基于python3 pyQt5 QtDesignner實現(xiàn)窗口化猜數(shù)字游戲功能

    基于python3 pyQt5 QtDesignner實現(xiàn)窗口化猜數(shù)字游戲功能

    這篇文章主要介紹了基于python3 pyQt5 QtDesignner實現(xiàn)窗口化猜數(shù)字游戲功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • Pandas Series如何轉(zhuǎn)換為DataFrame

    Pandas Series如何轉(zhuǎn)換為DataFrame

    這篇文章主要介紹了Pandas Series如何轉(zhuǎn)換為DataFrame問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

夏邑县| 潍坊市| 南川市| 昭平县| 南丰县| 叙永县| 集安市| 行唐县| 昭平县| 朔州市| 个旧市| 繁昌县| 广昌县| 西安市| 大足县| 汾阳市| 兴国县| 宜黄县| 盈江县| 阳高县| 汕头市| 堆龙德庆县| 天柱县| 峨边| 凤台县| 崇州市| 南投市| 博白县| 镇安县| 临泉县| 田阳县| 潞西市| 桐梓县| 万源市| 新田县| 巴塘县| 皋兰县| 麦盖提县| 定南县| 怀远县| 辽中县|