写python笔记本推荐_写个python程序帮你清理垃圾
起步
知识概要
【临时文件(*.tmp)】
【临时文件(*._mp)】
【日志文件(*.log)】
【临时帮助文件(*.gid)】
【磁盘检查文件(*.chk)】
【临时备份文件(*.old)】
【Excel备份文件(*.xlk)】
【临时备份文件(*.bak)】
【COOKIE】 cookies\*.*
【文件使用记录】 recent\*.*
【IE临时文件】 Temporary Internet Files\*.*
【临时文件文件夹】 Temp\*.*
【预读取数据文件夹】 prefetch\*.*
【临时文件】 temp\*.*
获取文件地址
import os
print os.getcwd() # 'E:\\PythonSource\\leanr_py'
os.chdir('d://wamp')
print os.getcwd() # 'd:\\wamp'
os.environ['systemdrive'] # 'C:'
os.environ['userprofile'] # 'C:\\Users\\Administrator'
os.environ['windir'] # 'C:\\Windows'
遍历目录
参数top表示需要遍历的顶级目录的路径。
参数topdown的默认值是“True”表示首先返回顶级目录下的文件,然后再遍历子目录中的文件。当topdown的值为"False"时,表示先遍历子目录中的文件,然后再返回顶级目录下的文件。
参数onerror默认值为"None",表示忽略文件遍历时的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。
返回值:函数返回一个元组,含有三个元素。这三个元素分别是:每次遍历的路径名、路径下子目录列表、目录下文件列表。
for roots, dirs, files in os.walk('d://wamp', topdown=False)
# roots 文件夹路径, dirs 该目录下的文件夹列表, files文件列表
print roots # d://wamp
print dirs # ['bin', 'www', 'alias']
print files # ['wampmanage.conf', '1.txt']
判断是否垃圾文件
extension = os.path.splitext(r'aaa\bbb\ccc.ddd') # ('aaa\\bbb\\ccc', '.ddd')
if extension[1] in ['.tmp', '.bak']:
print '是垃圾文件'
删除文件
# 删除文件
os.remove('d:temporary/test/test.txt')
# 删除文件夹
os.rmdir('d:temporary/test/empty')
shutil.rmtree('d:/dir1/dir2/aaa')
def del_dir_or_file(root):
try:
if os.path.isfile(root):
# 删除文件
os.remove(root)
print 'file: ' + root + ' removed'
elif os.path.isdir(root):
# 删除文件夹
shutil.rmtree(root)
print 'directory: ' + root + ' removed'
except WindowsError:
print 'failure: ' + root + " can't remove"
获取文件大小
# 显示文件夹(路径)大小,单位 bite
os.path.getsize('d://temporary/test') # 4096
# 文件大小
os.path.getsize('d://temporary/test/aaa.txt') # 135
完整程序
import os
import json
import shutil
del_extension = {
'.tmp': '临时文件',
'._mp': '临时文件_mp',
'.log': '日志文件',
'.gid': '临时帮助文件',
'.chk': '磁盘检查文件',
'.old': '临时备份文件',
'.xlk': 'Excel备份文件',
'.bak': '临时备份文件bak'
}
del_userprofile = ['cookies', 'recent', 'Temporary Internet Files', 'Temp']
del_windir = ['prefetch', 'temp']
# 获取系统盘
SYS_DRIVE = os.environ['systemdrive'] + '\\'
# 获取用户目录
USER_PROFILE = os.environ['userprofile']
# 获取 Windows 目录
WIN_DIR = os.environ['windir']
# 获取当前路径 os.getcwd() 'E:\\Software\\Python27'
# 跳转至指定的文件目录 os.chdir('d://wamp')
# 获取系统盘符 os.environ['systemdrive'] 'C:'
# 获取用户目录 os.environ['userprofile'] 'C:\\Users\\Administrator'
# 获取 Windows 目录 os.environ['windir'] 'C:\\Windows'
def del_dir_or_file(root):
try:
if os.path.isfile(root):
# 删除文件
os.remove(root)
print 'file: ' + root + ' removed'
elif os.path.isdir(root):
# 删除文件夹
shutil.rmtree(root)
print 'directory: ' + root + ' removed'
except WindowsError:
print 'failure: ' + root + " can't remove"
# 字节bytes转化kb\m\g
def formatSize(bytes):
try:
bytes = float(bytes)
kb = bytes / 1024
except:
print("传入的字节格式不对")
return "Error"
if kb >= 1024:
M = kb / 1024
if M >= 1024:
G = M / 1024
return "%fG" % (G)
else:
return "%fM" % (M)
else:
return "%fkb" % (kb)
class DiskClean(object):
def __init__(self):
self.del_info = {}
self.del_file_paths = []
self.total_size = 0
for k,v in del_extension.items():
self.del_info[k] = dict(name = v, count = 0)
def scan(self):
for roots, dirs, files in os.walk(USER_PROFILE, topdown=False):
# 生成并展开以 root 为根目录的目录树,参数 topdown 设定展开方式从底层到顶层
for file_item in files:
# 获取扩展名
file_extension = os.path.splitext(file_item)[1]
# print os.path.join(roots, file_item)
if file_extension in self.del_info:
# 文件完整路径
file_full_path = os.path.join(roots, file_item)
self.del_file_paths.append(file_full_path)
self.del_info[file_extension]['count'] += 1
self.total_size += os.path.getsize(file_full_path)
def show(self):
print json.dumps(self.del_info, indent=4, ensure_ascii=False)
print '删除可节省:%s 空间' % formatSize(self.total_size)
def delete_files(self):
for i in self.del_file_paths:
del_dir_or_file(i)
if __name__ == '__main__':
cleaner = DiskClean()
cleaner.scan()
cleaner.show()
if_del = raw_input('是否删除y/n:')
if if_del == 'y':
cleaner.delete_files()
总结
写python笔记本推荐_写个python程序帮你清理垃圾相关推荐
- 新手学python书籍推荐_新手学python看哪本书
对于零基础入门的人来说,对于Python的学习还是有点懵懵懂懂的,如果有一些书籍先看看来引导,学起来难度也会减低很多!所以,学python倒是向大家推荐这些书籍! 1.<PYTHON基础教程(第 ...
- 儿童python入门书籍推荐_有哪些Python入门的书籍值得推荐?
之前发过一篇文章来推荐一些书,这里再发一遍.希望能帮助到需要到大家. Python随着AI人工智能的发展,一度被推上了编程语言大佬的位置,因为其入手比较简单,上手非常快,所以比较容易被大家接受. Py ...
- load python txt文件_详解Python中numpy.loadtxt()读取txt文件
为了方便使用和记忆,有时候我们会把 numpy.loadtxt() 缩写成np.loadtxt() ,本篇文章主要讲解用它来读取txt文件. 读取txt文件我们通常使用 numpy 中的 loadtx ...
- python vlookup 模糊_如何用python写excel中的vlookup函数?
1.背景 Vlookup 函数,可以算是一个数据专员必须要会使用的基本函数了,确实很好用.但是你可能会注意到,Excel 一旦数据量过大,打开都费劲了,何况打开后,你还要输入公式计算,就更费劲了,此时 ...
- python引流_怎样用python写引流脚本
Python是一门非常适合处理数据和自动化完成重复性工作的编程语言,我们在用数据训练机器学习模型之前,通常都需要对数据进行预处理,而Python就非常适合完成这项工作,比如需要重新调整几十万张图像的尺 ...
- 生物信息学python书籍推荐_求一份学习生物信息学的书单?
看起来你们组不做种群,不做进化,不做系统生物学,可能只是用组学手段为实验方法打打基础. 关于编程,推荐四本书: python学习手册(最基本,不用多说) 编写高质量代码 改善Python程序的91个建 ...
- python 报表框架_现在学Python还不晚!阿里巴巴推荐的Python学习教程,分享给大家...
在互联网信息爆炸的时代,我们经常面临各种与信息搜集有关的事情,但是信息来源网站多,信息量大,如果采用常规的人工搜索+office软件整理,往往要花费大量的时间. 这里为大家介绍一个门槛低.易上手的工具 ...
- python 报表框架_现在学Python还不晚!阿里巴巴推荐的Python学习教程,分享给大家!...
在互联网信息爆炸的时代,我们经常面临各种与信息搜集有关的事情,但是信息来源网站多,信息量大,如果采用常规的人工搜索+office软件整理,往往要花费大量的时间. 这里为大家介绍一个门槛低.易上手的工具 ...
- 适合新手的python书籍推荐_推荐一本适合初学者全面自学python的书(附赠电子书)...
原标题:推荐一本适合初学者全面自学python的书(附赠电子书) 今天一个朋友问我:有个朋友要学习 python,她属于那种特别能啃书的,让我推荐.我学 python 都是无师自通的,没有看过什么书, ...
最新文章
- 在Linux server上建立NAS文件服务器
- 怎么在js中取java变量的值
- 常见的一些 Hash 函数
- Redis两种持久化方式(RDBAOF)
- netstat详解_需要!Linux常用监视和故障排查命令详解
- 深入理解JVM类文件格式
- js+css实现验证码框,前端实现6位验证码输入框效果
- 解决/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found错误的解决
- “聆听”升级,阿里云智能喜迎首席聆听官
- 【NLP必读】2019年深度学习自然语言处理最新十大发展趋势
- C++中的explicit、implicit关键字
- python日期时间模块_Python模块|时间处理模块-日期时间模块,python,datetime
- 2656 阿克曼函数
- 《AI·未来》 ---- 读书笔记
- 车牌识别对于智慧城市的重要性
- 学习汇编对编程有什么帮助?如何学习
- 扒开思派健康招股书:大数据的面子,“卖药”的里子
- 网购热催生网络模特月入万元多为大学生
- 交互媒体专题设计------《The Wiley Handbook of Human Computer Interaction》之观后感
- 教你如何正确屏蔽掉WPS弹窗广告
热门文章
- 儒林外史每回概括简短10字_早安心语正能量经典短句 一句话的简短励志语录
- learnpythonthehardway下载_LearnPythonTheHardWay学习笔记1:学习环境搭建
- MYSQL的集群的安装与配置(mysql-5.1.21)
- Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)...
- 用户反馈:对 Rafy 开发框架的一些个人建议
- 《Java设计模式》之桥接模式
- ES6特性之:Spread操作符
- Python模块学习——tempfile
- 检测Java对象所占内存大小 (转载)
- mysql中文编码问题