[python] 删除文件或文件夹

#-*- coding: UTF-8 -*-
# 有时候要删除文件夹里文件或文件夹
# 这个小类用来删除文件或文件夹还是相当有用的
# 删除文件时有时希看到删除的结果,于是就有了这个Deleter了
# 下面的一些文件注释用的是Doxygen的样式
# 用了英文,先就不改回中文吧。
class Deleter():
    def __init__(self, ToPrint=True, Logger=None):
        self.Logger = Logger
        self.ToPrint = ToPrint
        return

    def Log(self, Str):
        if self.Logger:
            self.Logger.Log(Str)
        if self.ToPrint:
            print Str
        return

    ## Delete a folder
    #  @param FolderName folder to delete
    #<br/>
    #Example:
    #<pre>
    #    T = Common()
    #    FolderName = r'Temp'
    #    T.DeleteFolder(FolderName)
    #</pre>
    def DeleteFolder(self, FolderName):
        '''delete files and folders'''
        for Item in os.listdir(FolderName):
            TempPath = os.path.join(FolderName, Item)
            if os.path.isfile(TempPath):
                self.DeleteFile(TempPath)
                pass
            elif os.path.isdir(TempPath):
                self.DeleteFolder(TempPath)
                pass
            else:
                self.Log("Not a file or folder: %s" % (FolderName))
                pass
            pass

        try:
            os.rmdir(FolderName)
            self.Log("Folder deleted: %s" % (FolderName))
        except:
            self.Log("Failed to delete folder: %s" % (FolderName))
            pass

        return


    ## Delete a file
    #  @param FileName file to delete
    #<br/>
    #Example:
    #<pre>
    #    T = Common()
    #    FolderName = r'TempFile.txt'
    #    T.DeleteFile(FileName)
    #</pre>
    def DeleteFile(self, FileName):
        try:
            os.remove(FileName)
            self.Log("File deleted: %s" % (FileName))
        except:
            self.Log("Failed to delete file: %s" % (FileName))
            pass
        return

    ## Delete a list of folders
    #  @param FolderList a list of folder to delete
    #<br/>
    #Example:
    #<pre>
    #    T = Common()
    #    FolderNameList = [r'Temp1', r'Temp2']
    #    T.DeleteFolders(FolderNameList)
    #</pre>
    def DeleteFolders(self, FolderNameList):
        for FolderName in FolderNameList:
            self.DeleteFolder(FolderName)
        return

    ## Delete a list of files
    #  @param FolderList a list of files to delete
    #<br/>
    #Example:
    #<pre>
    #    T = Common()
    #    FolderNameList = [r'Temp1.txt', r'Temp2.txt']
    #    T.DeleteFiles(FileNameList)
    #</pre>
    def DeleteFiles(self, FileNameList):
        for FileName in FileNameList:
            self.DeleteFile(FileName)
        return

Op = Deleter()
Op.DeleteFile('a.txt')
# Failed to delete file: a.txt

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遗落尘污

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值