Skip to content

Commit e3b7e62

Browse files
authored
Merge pull request #824 from rblcoder/arrange_scripts
added folders_arranger
2 parents e5cfccc + b2db92f commit e3b7e62

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

folders_arranger/folders_arranger.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import shutil
2+
import os
3+
import string
4+
5+
6+
class ArrangeScripts:
7+
def __init__(self, path_to_folder):
8+
self.folders = ['a_e', 'f_j', 'k_o', 'p_t', 'u_z']
9+
self.folder_mapping = {}
10+
for alphabet in list(string.ascii_lowercase):
11+
if alphabet in list('abcde'):
12+
self.folder_mapping[alphabet] = 'a_e'
13+
elif alphabet in list('fghij'):
14+
self.folder_mapping[alphabet] = 'f_j'
15+
elif alphabet in list('klmno'):
16+
self.folder_mapping[alphabet] = 'k_o'
17+
elif alphabet in list('pqrst'):
18+
self.folder_mapping[alphabet] = 'p_t'
19+
elif alphabet in list('uvwxyz'):
20+
self.folder_mapping[alphabet] = 'u_z'
21+
22+
self.path_to_folder = path_to_folder
23+
24+
def create_folders(self):
25+
for folder in self.folders:
26+
new_folder = os.path.join(self.path_to_folder, folder)
27+
if not os.path.isdir(new_folder):
28+
os.mkdir(new_folder)
29+
30+
def organize_folder(self):
31+
self.create_folders()
32+
for a_folder in os.listdir(self.path_to_folder):
33+
if a_folder in self.folders:
34+
continue
35+
36+
source_path = os.path.join(self.path_to_folder, a_folder)
37+
38+
first_char = a_folder.lower()[0]
39+
destination_path = os.path.join(self.path_to_folder, self.folder_mapping[first_char])
40+
shutil.move(source_path, destination_path, copy_function=shutil.copytree)
41+
42+
43+
def process_folders():
44+
# get folder path
45+
user_input = input('Enter path to folder which needs to be organized: ')
46+
arrange = ArrangeScripts(user_input)
47+
arrange.organize_folder()
48+
49+
50+
if __name__ == "__main__":
51+
try:
52+
process_folders()
53+
except Exception as e:
54+
print(e.__class__, "occurred.")

folders_arranger/readme.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# This is a program to arrange folders
2+
Folders are arranged thus:
3+
eg. [a-e], [f-j]...... [u-z]
4+
5+
---
6+
7+
8+
## How to run
9+
10+
#### Run folders_arranger.py

0 commit comments

Comments
 (0)