Python实现自动整理文件的脚本


Posted in Python onDecember 17, 2020

前言

工作上的文档和资料好几个月没整理了,因为平常太忙都是随手往桌面丢。整个桌面杂乱无章全是文档和资料。几乎快占满整个屏幕了,所有我必须要整理一下了。但是手动整理太费时间了,于是我想到了python。

示例

import os
import glob
import shutil

'''
@Author: huny
@date: 2020.12.06
@function: 桌面整理
'''


class FileType():
  def __init__(self):
    self.filetype = {
      "图片": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg", ".heif", ".psd"],
      "视频": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng", ".qt", ".mpg", ".mpeg", ".3gp", ".mkv"],
      "音频": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3", ".msv", ".ogg", ".oga", ".raw", ".vox", ".wav", ".wma"],
      "文档": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods", ".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox",
".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt", ".pptx", ".csv", ".pdf", ".md",".xmind"],
      "压缩文件": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z", ".dmg", ".rar", ".xar", ".zip"],
      "文本": [".txt", ".in", ".out",".json",".xml",".log"],
      "程序脚本": [".py", ".html5", ".html", ".htm", ".xhtml",s".c", ".cpp", ".java", ".css",".sql"], 
      "可执行程序": [".exe",".bat", ".lnk"],
      "字体文件": [".ttf", ".OTF", ".WOFF", ".EOT"]
    }

  def JudgeFile(self, pathname):
    for name, type in self.filetype.items():
      if pathname in type:
        return name
    return "无法判断类型文件"


class DeskTopOrg(object):
  def __init__(self):
    self.filetype = FileType()

  def Organization(self):   
    filepath = os.path.join(os.path.expanduser('~'),"Desktop")
    paths = glob.glob(filepath + "/*.*")
    # print('paths-->',paths)
    for path in paths:
      try:
        if not os.path.isdir(path):
          file = os.path.splitext(path)
          filename,type = file
          # print('type-->',type)
          # print("filename-->",filename)
          print('path-->',path)
          dir_path = os.path.dirname(path)
          # print('dir_path-->',dir_path)
          savePath = dir_path + '/{}'.format(self.filetype.JudgeFile(type))
          print('savePath-->',savePath)
          if not os.path.exists(savePath):
            os.mkdir(savePath)
            shutil.move(path, savePath)
          else:
            shutil.move(path, savePath)
      except FileNotFoundError:
        pass
    # print("程序执行结束!")


if __name__ == '__main__':
  try:
    while True:
      desktopOrg = DeskTopOrg()
      desktopOrg.Organization()
      print("---->你的桌面已经整理完成。")
      a = input('---->请按回车键退出:')
      if a == '':
        break
  except BaseException:
    print("ERROE:路径错误或有重复的文档")

整理完了,桌面清爽了不少。(注意此脚本是按后缀进行分类归档的)

Python实现自动整理文件的脚本

进阶

基于这个我想是否可以对其他不同的路径进行整理呢,于是又优化了一下

import os
import glob
import shutil

'''
@Author: huny
@date: 2020.12.06
@function: 文件整理
'''


class FileType():
  def __init__(self):
    self.filetype = {
      "图片": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg", ".heif", ".psd"],
      "视频": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng", ".qt", ".mpg", ".mpeg", ".3gp", ".mkv"],
      "音频": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3", ".msv", ".ogg", ".oga", ".raw", ".vox", ".wav", ".wma"],
      "文档": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods", ".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox",
".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt", ".pptx", ".csv", ".pdf", ".md",".xmind"],
      "压缩文件": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z", ".dmg", ".rar", ".xar", ".zip"],
      "文本": [".txt", ".in", ".out", ".json","xml",".log"],
      "程序脚本": [".py", ".html5", ".html", ".htm", ".xhtml", ".c", ".cpp", ".java", ".css",".sql"], 
      "可执行程序": [".exe",".bat",".lnk"],
      "字体文件": [".ttf", ".OTF", ".WOFF", ".EOT"]
    }

  def JudgeFile(self, pathname):
    for name, type in self.filetype.items():
      if pathname in type:
        return name
    return "无法判断类型文件"


class DeskTopOrg(object):
  def __init__(self):
    self.filetype = FileType()

  def Organization(self):
    filepath = input("请输入需要整理的文件夹路径: ")
    paths = glob.glob(filepath + "/*.*")
    print('paths-->',paths)
    for path in paths:
      try:
        if not os.path.isdir(path):
          file = os.path.splitext(path)
          filename,type = file
          print('type-->',type)
          print("filename-->",filename)
          print('path-->',path)
          dir_path = os.path.dirname(path)
          print('dir_path-->',dir_path)
          savePath = dir_path + '/{}'.format(self.filetype.JudgeFile(type))
          print('savePath-->',savePath)
          if not os.path.exists(savePath):
            os.mkdir(savePath)
            shutil.move(path, savePath)
          else:
            shutil.move(path, savePath)
      except FileNotFoundError:
        pass
    print("程序执行结束!")


if __name__ == '__main__':
  try:
    while True:
      desktopOrg = DeskTopOrg()
      desktopOrg.Organization()
      print("---->你的文件已经整理完成。")
      a = input('---->请按回车键退出:')
      if a == '':
        break
  except BaseException:
    print("ERROE:路径错误或有重复的文档")

可以自由的整理你想要整理的路径。

Python实现自动整理文件的脚本

后续

其他朋友也有需求,但是又没有python环境,于是我将程序打包成exe执行文件。

安装pyinstaller

pip install pyinstaller

执行打包命令

#在程序脚本的路径执行以下命令
pyinstaller -F ***.py

执行完后生成几个文件,在dist文件下有一个exe可执行文件,将他单独发给朋友即可。

Python实现自动整理文件的脚本

别忘了先自己测试一遍。

Python实现自动整理文件的脚本

以上就是Python实现自动整理文件的脚本的详细内容,更多关于python 自动整理文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python脚本实现分析dns日志并对受访域名排行
Sep 18 Python
21行Python代码实现拼写检查器
Jan 25 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
python 3.5实现检测路由器流量并写入txt的方法实例
Dec 17 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
记录Python脚本的运行日志的方法
Jun 05 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
Apr 22 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
解析目标检测之IoU
Jun 26 Python
Python用access判断文件是否被占用的实例方法
Dec 17 #Python
Python实例教程之检索输出月份日历表
Dec 16 #Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 #Python
python中类与对象之间的关系详解
Dec 16 #Python
python简单实现插入排序实例代码
Dec 16 #Python
python中函数返回多个结果的实例方法
Dec 16 #Python
python的setattr函数实例用法
Dec 16 #Python
You might like
php在线打包程序源码
2008/07/27 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
window.ActiveXObject使用说明
2010/11/08 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python中协程用法代码详解
2018/02/10 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
岗位廉政承诺书
2014/03/27 职场文书
企业文化宣传标语
2014/06/09 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js