python3 自动整理文件(超简单代码)

思路:

1.在该文件夹里面创建子文件夹
2.判断该文件夹里面所有文件的格式,也就是什么后缀名
3.将文件进行重命名并放入刚创建好的子文件夹中
4.两种整理办法:
(1)利用shutil.copy这个函数进行复制到子文件夹中
(2)利用shutil.move这个函数进行剪切到子文件夹中

演示:

一.整理前的文件夹:
在这里插入图片描述
二.代码:
方法一:复制版代码

import os
import shutil


lj = 'D:\Desktop\自动整理'                                                     #文件夹的路径

os.mkdir(lj + './视频')                                                      #创建子文件夹,命名为视频
sp = lj + './视频'                                                           #拼接成一个该子文件夹(视频)的字符串
sp_path = os.path.abspath(sp)                                               #返回该文件夹的绝对路径

os.mkdir(lj + './照片')                                                      #创建子文件夹,命名为照片
zp = lj + './照片'                                                           #拼接成一个该子文件夹(照片)的字符串
zp_path = os.path.abspath(zp)                                               #返回该文件夹的绝对路径

os.mkdir(lj + './音乐')                                                      #创建子文件夹,命名为照片
music = lj + './音乐'                                                           #拼接成一个该子文件夹(照片)的字符串
music_path = os.path.abspath(music)                                               #返回该文件夹的绝对路径


i = 1
j = 1
m = 1
for file in os.listdir(lj):                                                  #遍历文件夹里面的文件:
    if file.endswith('.jpg'):                                                #判断是不是ipg格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(zp_path + './' + str(i) + '.jpg')          #生成新的照片的绝对路径
        shutil.copy(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        i += 1

    if file.endswith('.mp4'):                                                #判断是不是MP4格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(sp_path + './' + str(j) + '.mp4')          #生成新的照片的绝对路径
        shutil.copy(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        j += 1

    if file.endswith('.png'):                                                #判断是不是png格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(zp_path + './' + str(i) + '.png')          #生成新的照片的绝对路径
        shutil.copy(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        i += 1

    if file.endswith('.jpeg'):                                                #判断是不是jpeg格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(zp_path + './' + str(i) + '.jpeg')          #生成新的照片的绝对路径
        shutil.copy(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        i += 1

    if file.endswith('.mp3'):                                                #判断是不是jpeg格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(music_path + './' + str(m) + '.mp3')          #生成新的照片的绝对路径
        shutil.copy(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        m += 1






方法二:剪切版代码:

import os
import shutil


lj = 'D:\Desktop\自动整理'                                                     #文件夹的路径

os.mkdir(lj + './视频')                                                      #创建子文件夹,命名为视频
sp = lj + './视频'                                                           #拼接成一个该子文件夹(视频)的字符串
sp_path = os.path.abspath(sp)                                               #返回该文件夹的绝对路径

os.mkdir(lj + './照片')                                                      #创建子文件夹,命名为照片
zp = lj + './照片'                                                           #拼接成一个该子文件夹(照片)的字符串
zp_path = os.path.abspath(zp)                                               #返回该文件夹的绝对路径

os.mkdir(lj + './音乐')                                                      #创建子文件夹,命名为照片
music = lj + './音乐'                                                        #拼接成一个该子文件夹(照片)的字符串
music_path = os.path.abspath(music)                                         #返回该文件夹的绝对路径


i = 1
j = 1
m = 1
for file in os.listdir(lj):                                                  #遍历文件夹里面的文件:
    if file.endswith('.jpg'):                                                #判断是不是ipg格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(zp_path + './' + str(i) + '.jpg')          #生成新的照片的绝对路径
        shutil.move(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        i += 1

    if file.endswith('.mp4'):                                                #判断是不是MP4格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(sp_path + './' + str(j) + '.mp4')          #生成新的照片的绝对路径
        shutil.move(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        j += 1

    if file.endswith('.png'):                                                #判断是不是png格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(zp_path + './' + str(i) + '.png')          #生成新的照片的绝对路径
        shutil.move(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        i += 1

    if file.endswith('.jpeg'):                                                #判断是不是jpeg格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(zp_path + './' + str(i) + '.jpeg')          #生成新的照片的绝对路径
        shutil.move(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        i += 1

    if file.endswith('.mp3'):                                                #判断是不是jpeg格式的照片
        oldpath = os.path.abspath(lj + './' + str(file))                     #生成旧的照片的绝对路径
        newpath = os.path.abspath(music_path + './' + str(m) + '.mp3')          #生成新的照片的绝对路径
        shutil.move(os.path.abspath(oldpath), os.path.abspath(newpath))      #复制到新的文件夹里
        m += 1






其实这两个代码都是大同小异,只是把shutil.copy变成了shutil.move,其他都是一模一样的
三.效果:
方法一的效果:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建了三个新的子文件夹(音乐,照片,视频),然后复制和重命名了文件名到了新的子文件夹中。

方法二的效果:
在这里插入图片描述
创建了三新的子文件夹(照片,音乐,视频),然后剪切和重命名了文件到了新的子文件夹中。
四.总结:
第一个,这个代码,主要用到osshutil这两个模块,属于学习文件操作里面的内容。
第二个,这是一个面向过程的代码,代码其实很简单,然后也很容易理解,这对在写面向对象的代码时有帮助。
第三个,无论想写多么优秀和优雅的代码,先要把基本功练好,但更重要的是个人的思维能力。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值