快速創建多層文件夾的Python函數

一、為什麼需要快速創建多層文件夾

在日常開發中,我們經常需要創建多層文件夾以存放不同的數據,例如訓練數據、測試數據和驗證數據等。手動創建多層文件夾,不僅費時費力,而且容易出錯,而使用Python編寫函數來快速創建多層文件夾,可以極大地提高效率和準確度。

二、Python函數實現

下面是一個快速創建多層文件夾的Python函數:

import os

def mkdir(path):
    """
    遞歸創建多級目錄
    :param path: 需要創建的目錄路徑
    :return: 無
    """
    # 去除首位空格
    path = path.strip()
    # 去除尾部 \ 符號
    path = path.rstrip("\\")
 
    # 判斷路徑是否存在
    # 存在     True
    # 不存在   False
    is_exists = os.path.exists(path)
 
    # 判斷結果
    if not is_exists:
        # 如果不存在則創建目錄
        os.makedirs(path)

        print(path + ' 創建成功')
        return True
    else:
        # 如果目錄存在則不創建,並提示目錄已存在
        print(path + ' 目錄已存在')
        return False

三、函數使用說明

使用該函數非常簡單,只需要傳入需要創建的文件夾路徑即可。如果路徑不存在,則自動創建對應的目錄。

例如,我們需要在D盤下創建一個名為“test”的文件夾,其中包含三個子文件夾:data、model和result,我們可以按照以下方式來調用該函數:

mkdir("D:\\test\\data")
mkdir("D:\\test\\model")
mkdir("D:\\test\\result")

這樣就可以快速創建多層的文件夾了,如果文件夾已經存在,則不會再次創建。

四、函數擴展

上述代碼雖然已經可以快速創建多層文件夾了,但是仍有一些不足之處。為了進一步提高代碼的健壯性和可擴展性,我們可以對該函數進行以下擴展:

1. 給創建的目錄加上時間戳或其他前綴或後綴,方便管理和查找。

2. 將創建目錄的過程封裝成一個類,方便多處調用。

3. 加上錯誤處理機制,例如如果傳入的路徑不合法、無法創建等,則進行異常捕獲並輸出錯誤信息。

代碼示例:

import os
import time
 
class FolderCreator:
    def __init__(self, folder_path):
        """
        初始化
        :param folder_path: 文件夾路徑
        """
        self.folder_path = folder_path
 
    def create_folder(self):
        """
        創建文件夾
        """
        try:
            # 判斷路徑是否存在
            # 存在     True
            # 不存在   False
            is_exists = os.path.exists(self.folder_path)
 
            # 判斷結果
            if not is_exists:
                # 如果不存在則創建目錄
                os.makedirs(self.folder_path)
 
                print(self.folder_path + ' 創建成功')
                return True
            else:
                # 如果目錄存在則不創建,並提示目錄已存在
                print(self.folder_path + ' 目錄已存在')
                return False
        except Exception as e:
            print("創建文件夾出錯:{}".format(e))
    
    def create_folder_with_timestamp(self, prefix=True):
        """
        創建帶時間戳的文件夾
        :param prefix: 是否將時間戳作為前綴
        """
        now = time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime())
 
        if prefix:
            self.folder_path = now + "_" + self.folder_path
        else:
            self.folder_path = self.folder_path + "_" + now
 
        self.create_folder()

五、總結

本文介紹了如何使用Python快速創建多層文件夾的函數,並且對該函數進行了擴展,使其更加健壯和實用,具體擴展包括給創建目錄加上時間戳或其他前綴或後綴,封裝成類進行調用,加上錯誤處理機制等。該功能可以在日常開發中提高效率和準確度,希望對大家有所幫助。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285247.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:43
下一篇 2024-12-22 15:43

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Idea新建文件夾沒有java class的解決方法

    如果你在Idea中新建了一個文件夾,卻沒有Java Class,應該如何解決呢?下面從多個方面來進行解答。 一、檢查Idea設置 首先,我們應該檢查Idea的設置是否正確。打開Id…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Ojlat:一款快速開發Web應用程序的框架

    Ojlat是一款用於快速開發Web應用程序的框架。它的主要特點是高效、易用、可擴展且功能齊全。通過Ojlat,開發人員可以輕鬆地構建出高質量的Web應用程序。本文將從多個方面對Oj…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29

發表回復

登錄後才能評論