用Python实现文件自动分类

介绍:用Python实现文件自动分类

文件管理是我们几乎每天都要处理的事情。想象一下,有一天你想根据文件的扩展名将文件排序到文件夹中。这将是一项非常困难和耗时的任务。看看你的下载目录,它充满了不同的文件,你有时需要搜索一个特定的文件,这将花费你很长时间。但如果这很容易。只需点击一下鼠标,你就可以很快地对它们进行排序。这怎么可能??

我们可以用python创建一个程序,它可以让我们把时间花在搜索文件以外的事情上。这个程序将帮助我们根据文件扩展名对文件进行排序,然后通过查看扩展名来查找文件对我们来说将是一项简单的任务。想象一下如果你想要一个音乐文件,所有的音乐文件都会放在mp3文件夹下,这样会让我们很容易找到。


Python is a very good programming language that has everything in it. I personally like python because you can almost do everything in it. Python has many modules that help to make more programs. Python can also be used in automating our day to day tasks.

如果你被告知在这个文件夹中找到一个特定的文件(或者可能是一个包含数千个文件的更大的文件夹),你会被卡住,变得完全目瞪口呆。从这片混乱的海洋中找到一个文件可能非常困难(甚至不可能)。使用Python和几行代码就可以解决这个问题。让我们看看怎么做。

您应该具备一些python的基本知识才能继续。

So lets make it!

供应品

Python installed on the PC:Python下载

任何你想要的代码编辑器

(我个人喜欢VS代码,因为它很简单,而且有很多特性。完全免费)

Step 1: Install the Modules

To automate the file sorting you need only two modules:

操作系统模块

The OS module in Python provides functions for interacting with the operating system. OS comes under Python's standard utility modules. The *os* and *os. path* modules include many functions to interact with the file system.

要安装操作系统模块:

转到VS代码,打开终端并键入以下内容:

(也可以使用命令提示符或powershell)

pip安装os系统

Shutil模块

shutil模块提供了大量的高级operations on files and collections of files. In particular, functions are provided which support file copying and removal.

要安装shutil模块:

type the following code:

pip安装pytest shutil

第二步:让我们开始编码!!

1.导入模块

#导入os模块导入os#导入shutil模块导入shutil

2. Define the path to directory

#在此处写入目录名,例如downloads path='/path/to/directory'

3. Create a list of all the filename

list=os.listdir(路径)

4.添加for循环以检查所有文件

对于列表中的文件:
名称,ext=os.path.splitext(文件)

5.存放分机

ext = ext[1:]

5.重复此步骤

if ext == '':
持续

6.根据扩展名移动文件

如果os.path.exists(path+'/'+ext):
shutil.move(path+'/'+file\,path+'/'+ext+'/'+file\)

7.如果有新的扩展类型,则创建新文件夹

否则:
os.makedirs(路径+'/'+扩展名)shutil.move(路径+'/'+文件,路径+'/'+扩展名+'/'+文件)

Step 3: The Final Code

import os
import shutil path='/path/to/directory'list=os.listdir(path)对于列表中的文件\:name,ext=os.path.splitext(file\)ext=ext[1:]if ext=='':如果os.path.exists(path+'/'+ext):shutil.move(path+'/'+file\,path+'/'+ext+'/'+file\)else:os.makedirs(path+'/'+ext)shutil.move(path+'/'+file\,path+'/'+ext+'/'+file\)

步骤4:运行代码并完成

Press the run button and go to that folder you will have nice and clean organized folder.

-

-

如果您有任何疑问,请在讨论中键入。

-

-

Thank you :)

注意:我会在几天后添加视频。请调整。。。

自动化竞赛

参加了
自动化竞赛

第一个分享

    建议

    • 宠物挑战赛

      宠物挑战赛
    • Backyard Contest

      Backyard Contest
    • DIY夏令营大赛

      DIY夏令营大赛

    7条评论

    0
    轮胎滴

    三个月前

    Hello, I'm using VS code to do this, and I'm having an issue trying to get this to run, I have no idea what I am doing wrong at this point.

    0
    加甘拉姆项目经理

    回复三个月前

    你能在运行时发送你的问题吗。。
    我会尽力解决你的问题

    0
    轮胎滴

    回复三个月前

    理解
    console reasponse: PS C:\Users\TYR> & C:/Users/TYR/AppData/Local/Programs/Python/Python39/python.exe "c:/Users/TYR/Desktop/File sortter/文件-sort-code.py"
    文件“c:\Users\TYR\Desktop\File sortter\File sort code.py”,第5行
    path_ = 'C:\Users\TYR\Music'
    ^
    SyntaxError:(unicode错误)“UnicodeScape”编解码器无法解码位置2-3中的字节:截断\uxxxxxxx转义
    PS C:\Users\TYR>&C:/Users/TYR/AppData/Local/Programs/Python/Python39/Python.exe“C:/Users/TYR/Desktop/File sortter/文件-sort-code.py"
    文件“c:\Users\TYR\Desktop\File sortter\File sort code.py”,第5行
    path_ = 'C:\Users\TYR\Music'
    ^
    SyntaxError:(unicode错误)“UnicodeScape”编解码器无法解码位置2-3中的字节:截断\uxxxxxxx转义
    PS C:\Users\TYR>





    代码:
    导入操作系统
    导入系统
    导入shutil

    path_ = 'C:\Users\TYR\Music'


    路径=func\u cdhdnqdr()

    list=os.listdir(路径)

    for file_ in list_:
    名称,ext=os.path.splitext(文件名)

    ext = ext[1:]

    if ext == '':
    持续

    if os.path.exists(path+'/'+ext):
    shutil.move(路径+'/'+文件,路径+'/'+ext+'/'+文件)
    else:
    os.makedirs(路径+'/'+扩展名)
    shutil.move(路径+'/'+文件,路径+'/'+ext+'/'+文件)
    0
    加甘拉姆项目经理

    回复三个月前

    尝试使用双反斜杠的路径:
    path = 'C:\\Users\\TYR\\Music'

    那么您的代码中是什么:“path=func\u cdhdnqdr()”????

    0
    轮胎滴

    回复三个月前

    成功了

    1.
    鲁贝多

    小费三个月前

    如果您使用os.makedirs的exist\u ok参数,那么在创建文件夹的过程中可以简化代码,这样您就不必检查是否已经创建了它。