设为首页 收藏本站
查看: 671|回复: 0

[经验分享] python桌面整理小助手

[复制链接]

尚未签到

发表于 2017-4-28 12:34:52 | 显示全部楼层 |阅读模式
每到月末,桌面上基本都会爆满,散仙的习惯一个月整理一次桌面,上面放了各种文件,word,excel,txt,jar,压缩包等等,如果每天整理一次,感觉比较麻烦,一个月整理一次,又发现到时候整理的东西,实在太多了,少说也得花了5,6分钟,而且还得,分年分月分类拷贝进去和剪切,所以,就用python写了个整理桌面的小程序,其实不一定是桌面,任何一个路径下的文件,都可以整理,拷贝,整理路径是提前定义好的,这样才能整理。
当然这个程序,现在只是控制台,和cmd或shell下可以运行,等以后有空,把它做成窗体形式这样就更方便了。
先看下整理的几个分类:

DSC0000.jpg
再看下,按年月整理的截图:
DSC0001.jpg
当然,散仙定义的分类不一定非常完全,符合每个人分类习惯,所以会有一个未分类文件夹存放没有被分类的文件,当然如果你想定义的更细分,可以直接在代码里添加一个目录,后面如果有空,等散仙做成窗体的形式,就可以在桌面上动态添加分类文件夹,下面看下源码(基于python3.4的版本):


import os
import  shutil
#源目录,这里假设是桌面需要程序自动整理的路径
dirpath="C:\\Users\\qindongliang\\Desktop\\存档\\"
#当前月份路径,定义按多少月份归档
currentMonth="2014年9月份整理\\"
#根路径,存放一年多个月的归档数据
rootpath="C:\\Users\\qindongliang\\Desktop\\2014年整理\\"
#chm文件存档
chm=rootpath+currentMonth+"chm\\"
#csv文件存档地址
csv=rootpath+currentMonth+"csv文件\\"
#excel文件存档地址
excel=rootpath+currentMonth+"excel\\"
#jar文件存档地址
jar=rootpath+currentMonth+"jar包\\"
#java相关文件存档地址
java=rootpath+currentMonth+"java的相关\\"
#pic相关文件存档地址
pic=rootpath+currentMonth+"pic图片\\"
#shell脚本或bat文件相关文件存档地址
shellOrBat=rootpath+currentMonth+"shell脚本或bat文件\\"
#txt相关文件存档地址
txt=rootpath+currentMonth+"txt\\"
#word相关文件存档地址
word=rootpath+currentMonth+"word\\"
#各种文件夹相关文件存档地址
dirss=rootpath+currentMonth+"各种文件夹\\"
#tar相关文件存档地址
tar=rootpath+currentMonth+"各种压缩包\\"
#pdf相关文件存档地址
pdf=rootpath+currentMonth+"pdf\\"
#无分类文件
unknowFile=rootpath+currentMonth+"未分类文件\\"



def beginWork(dp):
#转成元组表示
tt=tuple(os.walk(dp));
#print(len(tt[0][1]))
#一级目录下的所有文件夹
dirs=tt[0][1]
#一级目录下的所有文件
files=tt[0][2]
print("文件夹总数量: ",len(dirs),"文件总数据量: ",len(files),"总共文件数:",len(dirs)+len(files))
print("====================移动文件开始==================================")
for var in tt[0][2]:
filename=dp+"\\"+var
#print(filename)
if filename.endswith("chm") or filename.endswith("chw"):
if not os.path.exists(chm):
os.makedirs(chm)
print(chm,"文件夹不存在,已生成!")
shutil.move(filename,chm)
elif filename.endswith("jar"):
if not os.path.exists(jar):
os.makedirs(jar)
print(jar,"文件夹不存在,已生成!")
shutil.move(filename,jar)
elif filename.endswith("csv"):
if not os.path.exists(csv):
os.makedirs(csv)
print(csv,"文件夹不存在,已生成!")
shutil.move(filename,csv)
elif filename.endswith("excel"):
if not os.path.exists(excel):
os.makedirs(excel)
print(excel,"文件夹不存在,已生成!")
shutil.move(filename,excel)
elif filename.endswith("java"):
if not os.path.exists(java):
os.makedirs(java)
print(java,"文件夹不存在,已生成!")
shutil.move(filename,java)
elif filename.endswith("jpg") or filename.endswith("gif"):
if not os.path.exists(pic):
os.makedirs(pic)
print(pic,"文件夹不存在,已生成!")
shutil.move(filename,pic)
elif filename.endswith("sh") or filename.endswith("bat"):
if not os.path.exists(shellOrBat):
os.makedirs(shellOrBat)
print(shellOrBat,"文件夹不存在,已生成!")
shutil.move(filename,shellOrBat)
elif filename.endswith("txt"):
if not os.path.exists(txt):
os.makedirs(txt)
print(txt,"文件夹不存在,已生成!")
shutil.move(filename,txt)
elif filename.endswith("pdf"):
if not os.path.exists(pdf):
os.makedirs(pdf)
print(pdf,"文件夹不存在,已生成!")
shutil.move(filename,pdf)
elif filename.endswith("doc") or filename.endswith("docx"):
if not os.path.exists(word):
os.makedirs(word)
print(word,"文件夹不存在,已生成!")
shutil.move(filename,word)
elif filename.endswith("gz") or filename.endswith("zip"):
if not os.path.exists(tar):
os.makedirs(tar)
print(tar,"文件夹不存在,已生成!")
shutil.move(filename,tar)
else:
if not os.path.exists(unknowFile):
os.makedirs(unknowFile)
print(unknowFile,"文件夹不存在,已生成!")
shutil.move(filename,unknowFile)
print("无分类的文件: "+filename)
#print(filename)
print("====================移动目录开始==================================")
for var in tt[0][1]:
tempdir=dp+"\\"+var
shutil.move(tempdir,dirss+"\\"+var)
print("移动"+tempdir+"到"+dirss+"路径完毕.......")


#开始分类
beginWork(dirpath)

运行效果如下所示:
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python进阶/操作IO/fo.py
文件夹总数量:  27 文件总数据量:  27 总共文件数: 54
====================移动文件开始==================================
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\pic图片\ 文件夹不存在,已生成!
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\csv文件\ 文件夹不存在,已生成!
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种压缩包\ 文件夹不存在,已生成!
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\txt\ 文件夹不存在,已生成!
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\未分类文件\ 文件夹不存在,已生成!
无分类的文件: C:\Users\qindongliang\Desktop\存档\\ersave.dat
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\shell脚本或bat文件\ 文件夹不存在,已生成!
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\word\ 文件夹不存在,已生成!
无分类的文件: C:\Users\qindongliang\Desktop\存档\\hadoop-metrics2.properties
无分类的文件: C:\Users\qindongliang\Desktop\存档\\hosts
无分类的文件: C:\Users\qindongliang\Desktop\存档\\hrider.7z
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\chm\ 文件夹不存在,已生成!
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\jar包\ 文件夹不存在,已生成!
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\java的相关\ 文件夹不存在,已生成!
C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\pdf\ 文件夹不存在,已生成!
====================移动目录开始==================================
移动C:\Users\qindongliang\Desktop\存档\\360wenjianhuifu到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\apache-curator-2.6.0-source-release到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\bbb到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\curatorlib到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\data到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\dhgate-lganalysis-impl到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\easyrecover6.0到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\etc到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\fdfdfd到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\hadoop2.2一键安装到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\hadoopconf到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\hadoopsys到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\hadoop安装脚本到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\hbaseconf到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\hrider到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
移动C:\Users\qindongliang\Desktop\存档\\lib到C:\Users\qindongliang\Desktop\2014年整理\2014年9月份整理\各种文件夹\路径完毕.......
Process finished with exit code -1


完成后,随便打开几个截图如下:
DSC0002.jpg

DSC0003.jpg
其实这也没啥技术含量,就是拷贝,目录,判断分类,移动文件或文件夹等,随便用什么语言写都可以完成,最后如果是在桌面运行,可以指定定义一个目录或文件列表,不被移除,比如windows自带的那几个,最好是把所有的杂项文件,放在一个桌面上的文件夹里,这样以来,就可以直接使用了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-370436-1-1.html 上篇帖子: python内建函数帮助文档 下篇帖子: Dave Python 练习八 -- 字典
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表