@echo off
cd E:
cd E:\DeleteCsv
start python stepId_17.py D:\DTG_CSV_Data 2 *.csv null
exit
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
from shutil import rmtree
import datetime
import time
def walk(path,day,deltype,ignotype):
da = int(day)
#当前日期时间 - 日期间隔X (即X天前的日期时间)
dt_daysago = datetime.datetime.now() - datetime.timedelta(days=da) #days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0 可以设置 天,分,秒等
str_dt_daysago = dt_daysago.strftime("%Y-%m-%d %H:%M:%S") #把datetime.datetime格式转换成时间字符串
timeArray_str_dt_daysago = time.strptime(str_dt_daysago, "%Y-%m-%d %H:%M:%S") #把时间字符串转换成时间数组
timeStamp_timeArray_str_dt_daysago = time.mktime(timeArray_str_dt_daysago) #把时间数据转换成时间戳
p = path.split(",") #支持多个目录、文件
for i in p:
if os.path.isfile(i):
print("指定删除的文件为 %s" % i)
os.remove(i)
return
else:
for root, dirs, files in os.walk(i):
if deltype == 'dir':
loop = dirs
elif deltype == 'del_dir':
print("指定删除的目录为 %s" % root)
rmtree(t)
return
else: #按类型删除
loop = files
for target in loop:
t = os.path.join(root, target)
if os.path.getatime(t) < timeStamp_timeArray_str_dt_daysago:
filename, filetype = os.path.splitext(t)
if deltype == "dir":
print("删除的目录为 %s" % t)
rmtree(t)
return
if filetype not in ignotype: #忽略高于删除
if deltype == '*.*' or filetype in deltype: #删除全部,除了上面的忽略类型外
print("批量删除的文件为 %s" % t)
os.remove(t)
if __name__ == '__main__':
path = sys.argv[1]
day = sys.argv[2]
deltype = sys.argv[3]
ignotype = sys.argv[4]
walk(path, day, deltype, ignotype)