标题: [原创代码] python2,保留脚本所在目录下最新的十个文件,删除其他旧文件 [打印本页]
作者: 元芳你怎么看 时间: 2016-6-22 14:35 标题: python2,保留脚本所在目录下最新的十个文件,删除其他旧文件
本帖最后由 元芳你怎么看 于 2016-6-22 14:36 编辑
- #!/usr/bin/env python2
- # -*- coding: UTF-8 -*-
- # coding:utf-8
-
- '''
- 功能:保留当前目录下最新的十个文件,删除其他旧文件
- Author : Randy
- '''
-
- import string,os,os.path
-
- dir = os.getcwd() #获取脚本所在目录
- print "脚本所在的目录:%s" % dir
-
-
- def check_file():
- dir_name = os.listdir(dir) #脚本目录下的文件和目录名
- file_name = []
- length = len(dir_name)
- for i in range(length):
- if os.path.isfile(dir_name[i]) and dir_name[i].rfind('.war')>0: #判断是否是文件
- # print dir_name[i]
- file_name.append(os.path.join(dir,dir_name[i])) #循环结束后生成一个绝对路径+文件名的列表
- # print "哈哈,调用我了,我把是文件的列表发给你呀"
-
- # print "file_name的值包括:"
- # for file in file_name:
- # print file
-
- file_mtime = {}
- for file in file_name:
- mtime=os.path.getmtime(file)
- file_mtime[mtime] = file #生成一个以修改时间为键,以文件绝对路径为值的字典
-
- return file_mtime
-
-
- def check_time():
- file_mtime = check_file()
- # print "该目录下的文件:"
- # for file in file_name:
- # print "%s" % file
- print '*' * 50
-
- # file_mtime = {}
- # for file in file_name:
- # mtime=os.path.getmtime(file)
- # file_mtime[mtime] = file #生成一个以修改时间为键,以文件绝对路径为值的字典
-
- file_mtime_keys = file_mtime.keys()
- file_mtime_keys.sort(reverse=True)
- length = len(file_mtime_keys)
-
- if length>10:
- for i in range(10,length):
- print file_mtime[file_mtime_keys[i]]
- try:
- inputcontent = raw_input ("是否要删除以上文件:y/n \n")
- if inputcontent == 'y':
- for i in range(10,length):
- os.remove(file_mtime[file_mtime_keys[i]])
- elif inputcontent == 'n':
- print "程序中断"
- else:
- print '-' * 50
- print "\n请输入正确的值:(y/n)\n"
- print '-' * 50,"\n"
- check_time()
- except KeyboardInterrupt:
- print "\n 程序中断 "
- # except ValueError:
- # print "请输入正确的值:(y/n)"
- # else:
- # print '-' * 50
- # print "\n请输入正确的值:(y/n)\n"
- # print '-' * 50,"\n"
- # check_time()
-
-
- if __name__ == '__main__':
- check_time()
- # check_file()
-
复制代码
作者: 元芳你怎么看 时间: 2016-6-22 14:40
思路:先把脚本所在目录下的文件的修改时间和文件名做成一个字典,以修改时间为键,以文件的绝对路径和文件名为值;然后根据字典的键值排序,删除旧的压缩包。
请各位大侠指教一下,看看有什么不妥和简化的思路。
作者: codegay 时间: 2016-6-22 17:33
思路不错代码也写得很好。
一般在双击运行或者IDLE 中F5运行的时候getcwd得到是脚本所在目录。
如果是在命令行下执行的话。getcwd得到的不是脚本文件所在的目录。
而命令行默认初始路径很有可能就是system32这样重要的系统目录。
参考
http://blog.chinaunix.net/uid-21961132-id-159389.html
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |