OpenSource For You

Automate File Classifica­tion with this Python Program

Unclutter your Downloads folder in Windows with this extremely useful file classifier which is written in Python. After running this script, you will be able to manage your downloads with ease.

- By: Mohit The author is a certified ethical hacker and EC Council certified security analyst. He has a master’s degree in computer science from Thapar University. You can contact him at mohitraj.cs@gmail.com and https://www.linkedin.com/in/mohit-990a852a/

Internet users download several files to the Downloads folder of Windows OS. If you examine the contents of your Downloads folder (C:\Users\<user-name>\Downloads) you might find various files in diverse formats like MP3, PDF, docs, srt, Zip, MP4, etc. These files populate your C drive, and then you start moving the files from the Downloads folder to other folders, which can be a very tiresome and monotonous task.

In this article, I am going to show you how to shift your files from the Downloads folder to their respective folders automatica­lly, by using a simple Python program.

The structure of the program

The complete program contains a Python code and one txt file. The txt file supplies the necessary parameters and rules for moving the files. First, let’s write a text file called rules.txt, as shown below:

C:\Users\<user-name>\Downloads R mp3:D:\music pdf:D:\all_pdf exe:D:\software doc:D:\all_docs docx:D:\all_docs srt:D:\all_srts mp4:D:\all_mp4

The first line indicates the complete path of the Downloads folder; so it is user-specific. The second line states the mode. I used ‘R’ for recursive mode and ‘S’ for simple mode. In recursive mode, the interprete­r checks folders inside Downloads. In simple mode, the interprete­r checks the files only in the Downloads folder.

The remaining lines show the file extensions with paths. This means that MP3 files must be moved to D:\music folder and so on.

Let us look at the program class1.py, and try and understand it:

# program created by mohit # official website L4wisdom.com # email-id mohitraj.cs@gmail.com

Import the mandatory files:

import os import shutil

The following lines indicate the path of the rules.txt file. In your Windows folder, this should be C:\Users\<username>\.

file_path=

os.path.expanduser(‘~’) file_name = file_path+”//” +”rules.txt”

Get the path and mode from rules.txt:

file_t

= open(file_name,’r’) path=file_t.readline() mode = file_t.readline() mode = mode.strip(“\n”).lower() path1 = path.strip(“\n”)

The following function returns a dictionary that contains the rules. The dictionary’s keys behave as extensions of the files, and values act as moved paths, respective­ly.

def rules(): dict1 = {} for each in file_t: each = each.strip(“\n”) if each.split(“:”,1)[0]:

file_ext,dest_path = each. split(“:”,1) file_ext = file_ext.strip() dest_path = dest_path. strip() dict1[file_ext]=dest_path return dict1

The following function takes a list of files, and moves the files to their respective folders:

def file_move(files_list): for file in files_list : if “.” in file: ext = file.rsplit(“.”,1)[1] ext= ext.strip() if ext in dict1: dst = dict1[ext] try: print file shutil.move(file, dst)

except Exception as e : print e

The following function is used when a simple mode is selected:

def single_dir(path1): os.chdir(path1) files = os.listdir(“.”) file_move(files)

The following function is used when a recursive mode is selected:

def rec_dirs(path1):

for root, dirs, files in os.walk(path1, topdown=True, onerror=None, followlink­s=False):

#print files os.chdir(root) file_move(files) print “files are moved” dict1 = rules()

if mode ==’r’:

rec_dirs(path1) else:

single_dir(path1)

Running the program

So, the program is ready.

Now let us convert the Python program into an .exe file.

In order to do this, use the installer shown in Figure 1. After conversion, it will make a directory called class1\dist, as shown in Figure 2. Get the class1.exe files from the directory class1\dist and put them in the Windows folder. Before doing that, you can rename the exe file. I am calling it cfr.exe. In this way, cfr.exe is added to the system path. cfr.exe works like a

DOS command.

In order to run the program, use Windows’ run facility, as shown in Figure 3.

After a successful run, check the folders as specified in the rules.txt. If the folders do not exist, then the program automatica­lly creates the folders.

 ??  ??
 ??  ?? Figure 3: Run the program
Figure 3: Run the program
 ??  ?? Figure 4: Folders are created and files are moved
Figure 4: Folders are created and files are moved
 ??  ?? Figure 1: Converting the Python program into an .exe file
Figure 1: Converting the Python program into an .exe file
 ??  ?? Figure 2: exe. files
Figure 2: exe. files

Newspapers in English

Newspapers from India