日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python实例31[文件夹清理]

發(fā)布時(shí)間:2023/12/18 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实例31[文件夹清理] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

使用:

foldercleanup.py -d 10 -k c:\test\keepfile.txt c:\test

表示對(duì)c:\test目錄只保留最近10天的子文件夾和keepfile.txt中指定的子文件夾。

?

代碼:??


import?os
import?os.path
import?datetime
??
def?getOption():
??
from?optparse?import?OptionParser
??
??des???
=?"clean?up?the?folder?with?some?options"
??prog??
=?"foldercleanup"
??ver???
=?"%prog?0.0.1"
??usage?
=?"%prog?[options]?foldername"
??
??p?
=?OptionParser(description=des,?prog=prog,?version=ver,?usage=usage,add_help_option=True)
??p.add_option(
'-d','--days',action='store',type='string',dest='days',help="keep?the?subfolders?which?are?created?in?recent?%days%?days")
??p.add_option(
'-k','--keepfile',action='store',type='string',dest='keepfile',help="keep?the?subfolders?which?are?recorded?in?text?file?%keepfile%?")
??options,?arguments?
=?p.parse_args()
??
??
if?len(arguments)?!=?1:
????
print("error:?must?input?one?directory?as?only?one?parameter?")
????
return
??
??
return?options.days,?options.keepfile,?arguments[0]??

?
def?preCheckDir(dir):
??
if(not?os.path.exists(dir)):
????
print("error:?the?directory?your?input?is?not?existed")
????
return
??
if(not?os.path.isdir(dir)):
????
print?("error:?the?parameter?your?input?is?not?a?directory")
????
return
????
??
return?os.path.abspath(dir)
??
def?isKeepByDay(dir,?day):
??indays?
=?False
??
if(?day?is?not?None)?:
????t?
=?os.path.getctime(dir)
????today?
=?datetime.date.today()
????createdate?
=?datetime.date.fromtimestamp(t)
????indate?
=?today?-?datetime.timedelta(days?=?int(day))
????
print?(createdate)
????
if(createdate?>=?indate):
??????indays?
=?True
??
print?(indays)
??
return?indays
??
def?isKeepByKeepfile(dir,?keepfile):
??needkeep?
=?False
??
print?(dir)
??
if?(keepfile?is?not?None):
????
try?:
??????kf?
=?open(keepfile,"r")
??????
for?f?in?kf.readlines():
????????
print?(f)
????????
if?(dir.upper().endswith("\\"?+?f.strip().upper())):
??????????needkeep?
=?True
??????kf.close()
????
except:
??????
print?("error:?keep?file?cannot?be?opened")
??
print(needkeep)
??
return?needkeep
????
def?removeSubFolders(dir,?day,?keepfile):
??subdirs?
=?os.listdir(dir)
??
for?subdir?in?subdirs:
????subdir?
=?os.path.join(dir,subdir)
????
if?(?not?os.path.isdir(subdir)):
??????
continue
????
print("----------------------")
????
if(?(not?isKeepByDay(subdir,?day))and?(not?isKeepByKeepfile(subdir,?keepfile))):
??????
print("remove?subfolder:?"?+?subdir)
??????
import?shutil
??????shutil.rmtree(subdir,True)
????
def?FolderCleanUp():
??(day,?keepfile,?dir)?
=?getOption()
??dir?
=?preCheckDir(dir)
??
if?dir?is?None:
????
return
??removeSubFolders(dir,day,keepfile)
??
if?__name__=='__main__':
??FolderCleanUp()

?

對(duì)目錄下保留最后的zip文件:

def?KeepLastNumZips(num)
????
def?extractTime(f):
????????
return?os.path.getctime(f)

????zipfiles?
=?[os.path.join(zipdir,?f)
????????????????
for?f?in?os.listdir(zipdir)
????????????????
if?os.path.splitext(f)[1]?==?".zip"]
????
if?len(zipfiles)?>?num:
????????zipfiles.sort(key
=extractTime,?reverse=True)
????????
for?i?in?range(num,?len(zipfiles)):
????????????os.remove(zipfiles[i])

?

?

?

完!

轉(zhuǎn)載于:https://www.cnblogs.com/itech/archive/2011/01/11/1915718.html

總結(jié)

以上是生活随笔為你收集整理的python实例31[文件夹清理]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。