直接贴代码:

删除某个目录下的文件,不遍历木路下文件夹下的文件,根据时间差删除,默认7天

#!/usr/bin/python
# -*- coding: gbk -*-
import os
import datetime
import re
import sys base_dir = 'E:\\test\\'
file_ype = '.xls'
days = 7 def deleteFile(base_dir,file_ype,days): now_time = datetime.datetime.now() #获取当前时间
os.chdir(base_dir) #切换到此目录
cwd = os.getcwd() #得到当前目录
files = os.listdir(os.getcwd()) # 列出目录中文件
for file in files:
if os.path.isfile(file):
file_name = os.path.basename(file) #获得文件名称
pattern = re.compile(file_ype)
match = len(pattern.findall(file_name)) #查找文件类型 if match>0:
timestamp = os.path.getmtime(file) #得到文件的修改时间
date = datetime.datetime.fromtimestamp(timestamp) #时间格式化
if (now_time - date).days>=days: #now_time - date).days 计算时间差,相差天数
os.remove(file) #删除文件
print "文件删除成功,删除文件名称为: "+file if __name__ == "__main__": #从命令行取参数,如命令行未传参数使用默认参数
if len(sys.argv)>3:
base_dir = sys.argv[1]
file_ype = sys.argv[2]
days = int(sys.argv[3])
deleteFile(base_dir,file_ype,days)
else:
deleteFile(base_dir,file_ype,days) #从命令行传参数的方法:python 文件名称.py 参数1 参数2 参数3

删除某个目录下包括目录下目录,遍历所有,删除符合后缀名的文件,默认删除7天前的文件

#!/usr/bin/python
# -*- coding: gbk -*-
import os,datetime,re,sys base_dir = 'E:\\test\\'
file_ype = '.xls'
days = 7 def del_files(base_dir,file_ype,days):
now_time = datetime.datetime.now() #获取当前时间
for cpath, dirs, files in os.walk(base_dir):#文件遍历
for file in files:
if file.endswith(file_ype): #过滤掉后缀名
timestamp = os.stat(os.path.join(cpath, file)).st_mtime #获取文件修改时间
date = datetime.datetime.fromtimestamp(timestamp) #时间转换
if (now_time - date).days>=days: #now_time - date).days 计算时间差,相差天数
os.remove(os.path.join(cpath, file)) #删除文件
print "文件删除成功,删除文件名称为: "+file if __name__ == "__main__":
#从命令行取参数,如命令行未传参数使用默认参数
if len(sys.argv)>3:
base_dir = sys.argv[1]
file_ype = sys.argv[2]
days = int(sys.argv[3])
del_files(base_dir,file_ype,days)
else:
print '调用未传参数方法'
del_files(base_dir,file_ype,days) #从命令行传参数的方法:python 文件名称.py 参数1 参数2 参数3

最新文章

  1. Oracle Entity6 在查询View的时候出现重复数据
  2. FTD团队目录
  3. Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression
  4. 通过ping确定网卡mtu
  5. Windows应用层网络模块扫盲
  6. LeetCode Kth Largest Element in an Array (快速排序)
  7. 【Linux工具】svn命令行使用实例
  8. oracle 物化视图导入导出报错
  9. .NET 二维码生成(ThoughtWorks.QRCode)【转发jiangys】
  10. c++继承学习
  11. java将对象转map,map转对象工具类
  12. JS a标签默认鼠标事件,导致无法修改input选中状态
  13. February 17th, 2018 Week 7th Saturday
  14. day1 计算机组成、操作系统
  15. python(61):str 和 bytes 转换
  16. nginx cookie 丢失问题
  17. 461.汉明距离(c++实现)
  18. JustOj 2043: N!
  19. pod引用第三方库的几种方式
  20. noip第22课作业

热门文章

  1. Vue 后台管理
  2. Linux连接外网
  3. javascript自定义一个迭代器
  4. 【转】Matlab的regionprops详解
  5. Android读书笔记二
  6. 转 Keras 保存与加载网络模型
  7. [LUOGU] P3952 时间复杂度
  8. JS正则表达式学习总结
  9. 【android】安卓平台版本和API版本的对应关系
  10. 9-11.Yii2.0框架控制器分配视图并传参xss攻击脚本视图的过滤