前記
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/164062.html
標籤:Python
下一篇:Python-操作XML檔案
