python刪除指定文件夾下文件和文件夾的方法


前記

  python刪除指定文件夾下的文件,是一個常用的功能。我找了不少地方,一直沒有找到合適的模版,那只好自己倒騰一個比較實用的模版了。

基本模塊

  這里面會用到幾個模塊,一個是🏪目錄下所有文件的的函數:listdir 常用的使用方法:

import os

filenames = os.listdir('.')
print(filenames)

另外一個就是查看該目錄下是否有特定的文件,這個就是name.swith()函數,具體的使用方法如下:

state = any(name.endswith('.py') for name in filenames)
print(state)

一個是查找該目錄下的子目錄。如下所示:該目錄子目錄static下的所有文件如下所示:

tmp_path = os.path.join(BASE_PATH,'static/')

還有一種方法用於查找該目錄下的特定文件。一般使用glob模塊。glob模塊是最簡單的模塊之一,內容非常少。用它可以查找符合特定規則的文件路徑名。具體的使用方法如下所示:

fileNames = glob.glob(path + r'/*')

實例解析

  這里面例子如下所示:具體的解析和運行結果非常簡單,需要你自己操作了;

import os
import sys
import glob

def del_files(path):
    fileNames = glob.glob(path + r'/*')

    for fileName in fileNames:
        try:
            os.remove(fileName)
            print("remove file:%s" % fileNames)
        except:

except:
    try:
        os.mkdir(fileName)
        print("mkdir file:%s " % fileName)
    except:
        print("del file:%s " % fileName)
        del_files(fileName)
        os.rmdir(fileName)


def del_file(path):
lsdir = os.listdir(path)
print(lsdir)
if any(name.endswith('.py') for name in lsdir):
print("no txt in this dir")
else:
print("have txt and need to remove")

for file in lsdir:
try:
    c_path = os.path.join(path,file)
    os.remove(c_path)
    print("rm c path: %s " % c_path)
except:
    del_file(path)
    os.rmdir(file)
    print("rm failed try again: %s " % c_path)


if __name__ == '__main__':
BASE_PATH = os.getcwd()
print("below is base path:\n %s" % BASE_PATH)
tmp_path = os.path.join(BASE_PATH,'static/')
print("below is tmp_path:\n %s" % tmp_path)
#del_files(tmp_path)
del_file(tmp_path)

我把這些代碼上傳到了github上,有需要的同學也可以上上面拷貝:

https://github.com/DyLanCao/ipython/tree/master/base/file_handle/dir_del


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM