DEV Community

Cover image for Create an automated file formator with python
Sahil Saif
Sahil Saif

Posted on • Updated on

Create an automated file formator with python

You all know how much messy it looks when all files lying on a single folder. like this 👇🏻
0

we will going to create an automated file formator with python

step 1

we will use build-in os module
→ stores all files in a list with os.listdir( )
→ remove main python file in which we will working from the list
1

step 2

→ identifying file type and store them in their corresponding list
→ we are going to create 4 folders ( images, docs, media, others ) in which all the files will divided.
2

step 3

→ Now create a function for folders making
3

step 4

→ make a function for moving files to folders
4

Final code

import os

def createFolder(folder):
    if not os.path.exists(folder):
        os.makedirs(folder)

def moveToFolder(folder,fileName):
    for file in fileName:
        os.replace(file,f"{folder}/{file}")

files=os.listdir()
files.remove('main.py')

imgExt=[".img",".png",".jpeg"]
images=[file for file in files if os.path.splitext(file)[1].lower() in imgExt]

docExt=[".doc",".pdf",".txt"]
document=[file for file in files if os.path.splitext(file)[1].lower() in docExt]

mediaExt=[".mp4",".mp3"]
media=[file for file in files if os.path.splitext(file)[1].lower() in mediaExt]

others=[]
for file in files:
    ext=os.path.splitext(file)[1].lower()
    if (ext not in imgExt) and (ext not in docExt) and (ext not in mediaExt) and os.path.isfile(file):
        others.append(file)
createFolder("images")
createFolder("media")
createFolder("docs")
createFolder("others")

moveToFolder("images",images)
moveToFolder("media",media)
moveToFolder("docs",document)
moveToFolder("others",others)

Enter fullscreen mode Exit fullscreen mode

Take a look on the output

Discussion (0)