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爬虫爬验证码实现功能详解
Apr 14 Python
浅谈python字符串方法的简单使用
Jul 18 Python
打包发布Python模块的方法详解
Sep 18 Python
对numpy和pandas中数组的合并和拆分详解
Apr 11 Python
Python中的上下文管理器和with语句的使用
Apr 17 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
python Django中models进行模糊查询的示例
Jul 18 Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
Dec 08 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购物车实现方法
2015/01/03 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
深入探究node之Transform
2017/07/20 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
python获取网页状态码示例
2014/03/30 Python
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
python多重继承实例
2014/10/11 Python
Python编写一个闹钟功能
2017/07/11 Python
Python输出各行命令详解
2018/02/01 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
Python常见数字运算操作实例小结
2019/03/22 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
Django实现内容缓存实例方法
2020/06/30 Python
哪些情况下不应该使用索引
2015/07/20 面试题
英语自荐信常用语句
2013/12/13 职场文书
预备党员转正思想汇报
2014/01/12 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
甜品店创业计划书
2014/08/14 职场文书
员工辞职信怎么写
2015/02/27 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python
《废话连篇——致新手》——chinapizza
2022/04/05 无线电