9
9
mode_list = []
10
10
sort_list = []
11
11
12
+ image_list = ['.png' , '.jpg' , '.jpeg' , '.gif' ]
13
+ archive_list = ['.zip' , '.rar' , '.7z' ]
14
+ textf_list = ['.txt' , '.md' , '.pdf' , '.doc' , '.docx' ]
15
+
12
16
13
17
def get_path (src_or_dst ):
14
18
folders = {source_folder : destination_folder }
@@ -34,7 +38,7 @@ def main_window(self):
34
38
sg .Radio ("Disabled" , "RADIO1" , default = True , key = 'SBYTD' , enable_events = True )]
35
39
], title = 'Sorting Options' , title_color = 'red' , relief = sg .RELIEF_SUNKEN )],
36
40
[sg .Text ("Choose filetype:" )],
37
- [sg .Combo (['.zip' , '.png' , '.txt' , '.md' ], key = 'FILETYPE' , enable_events = True )],
41
+ [sg .Combo (["Archive ( '.zip', '.rar'...)" , "Image ('. png', '.jpg'...)" , "Text ('. txt', '.docx'...)" ], key = 'FILETYPE' , enable_events = True )],
38
42
[sg .Ok (), sg .Cancel ()]]
39
43
40
44
window = sg .Window ('Choose filetype to move' , layout , default_element_size = (40 , 1 ))
@@ -85,6 +89,26 @@ def main_window(self):
85
89
86
90
window .close ()
87
91
92
+ def translate_filetype ():
93
+ for value in file_type :
94
+ if value .startswith ("Archive" ):
95
+ file_type .clear ()
96
+ for arch in archive_list :
97
+ file_type .append (arch )
98
+ return str (file_type )
99
+ elif value .startswith ("Image" ):
100
+ file_type .clear ()
101
+ for img in image_list :
102
+ file_type .append (img )
103
+ return str (file_type )
104
+ elif value .startswith ("Text" ):
105
+ file_type .clear ()
106
+ for txt in textf_list :
107
+ file_type .append (txt )
108
+ return str (file_type )
109
+ else :
110
+ pass
111
+
88
112
89
113
def append_mode (mode ):
90
114
mode_list .append (mode )
@@ -97,19 +121,13 @@ def detect_mode():
97
121
98
122
99
123
def append_file_type (value ):
100
- file_type .append (value )
101
- return value
102
-
103
-
104
- def get_file_type ():
105
124
if len (file_type ) == 1 :
106
- return str (file_type )[2 :- 2 ]
107
- else :
108
- ft_copy = file_type .copy ()
109
125
file_type .clear ()
110
- ft_copy .pop (0 )
111
- file_type .append (str (ft_copy )[2 :- 2 ])
112
- return str (file_type )[2 :- 2 ]
126
+ else :
127
+ pass
128
+ file_type .append (value )
129
+ translate_filetype ()
130
+ return value
113
131
114
132
115
133
class FileMover ():
@@ -122,40 +140,40 @@ def filemover(self, operation, sortby):
122
140
raise SystemExit ()
123
141
elif sortby is None :
124
142
for file in os .listdir (get_path ('src' )):
125
- file_ending = get_file_type ()
143
+ # file_ending = get_file_type()
126
144
is_file_in_curr_dir = os .path .isfile (get_path ('dst' ) + "/" + file )
127
- if file .endswith (file_ending ):
128
- result = None
129
- if is_file_in_curr_dir is False :
130
- if operation == "Copy" :
131
- result = shutil .copy (get_path ('src' ) + "/" + file , get_path ('dst' ) + "/" + file )
132
- else :
133
- result = shutil .move (get_path ('src' ) + "/" + file , get_path ('dst' ) + "/" + file )
145
+ for value in file_type :
146
+ if file .endswith (value ):
147
+ result = None
148
+ if is_file_in_curr_dir is False :
149
+ if operation == "Copy" :
150
+ result = shutil .copy (get_path ('src' ) + "/" + file , get_path ('dst' ) + "/" + file )
151
+ else :
152
+ result = shutil .move (get_path ('src' ) + "/" + file , get_path ('dst' ) + "/" + file )
134
153
#if file not in current_dir:
135
154
# file_type.pop()
136
155
137
156
elif sortby == 'Sort by Type' :
138
157
for file in os .listdir (get_path ('src' )):
139
158
sc = SortCriteria ()
140
- file_ending = get_file_type ()
141
159
is_file_in_dst_dir = os .path .isfile (get_path ('dst' ) + "/" + file )
142
160
get_subdir ()
143
- #is_file_in_subdir = os.path.isfile(get_subdir()) + "/" + file
144
- if file .endswith (file_ending ):
145
- if is_file_in_dst_dir is False and get_subdir () is False :
146
- result = None
147
- if operation == "Copy" :
148
- result = shutil .copy (get_path ('src' ) + "/" + file , sc .sortbytype (file_ending ) + "/" + file )
149
- else :
150
- result = shutil .move (get_path ('src' ) + "/" + file , sc .sortbytype (file_ending ) + "/" + file )
151
- elif is_file_in_dst_dir is False and get_subdir () is True :
152
- result = None
153
- if operation == 'Copy' :
154
- result = shutil .copy (get_path ('src' ) + "/" + file , sc .sortbytype (file_ending ) + "/" + file )
161
+ for value in file_type :
162
+ if file .endswith (value ):
163
+ if is_file_in_dst_dir is False and get_subdir () is False :
164
+ result = None
165
+ if operation == "Copy" :
166
+ result = shutil .copy (get_path ('src' ) + "/" + file , sc .sortbytype (value ) + "/" + file )
167
+ else :
168
+ result = shutil .move (get_path ('src' ) + "/" + file , sc .sortbytype (value ) + "/" + file )
169
+ elif is_file_in_dst_dir is False and get_subdir () is True :
170
+ result = None
171
+ if operation == 'Copy' :
172
+ result = shutil .copy (get_path ('src' ) + "/" + file , sc .sortbytype (value ) + "/" + file )
173
+ else :
174
+ result = shutil .move (get_path ('src' ) + "/" + file , sc .sortbytype (value ) + "/" + file )
155
175
else :
156
- result = shutil .move (get_path ('src' ) + "/" + file , sc .sortbytype (file_ending ) + "/" + file )
157
- else :
158
- pass
176
+ pass
159
177
160
178
return sg .PopupOK (f"File transfer successful!\n File(s) moved to '{ get_path ('dst' )} '" )
161
179
@@ -185,9 +203,6 @@ class SortCriteria():
185
203
186
204
def sortbytype (self , ftype ):
187
205
type_list = [ftype ]
188
- image_list = ['.png' , '.jpg' , '.jpeg' , '.gif' ]
189
- archive_list = ['.zip' , '.rar' , '.7z' ]
190
- textf_list = ['.txt' , '.md' ]
191
206
192
207
# For image files
193
208
for type in type_list :
@@ -219,30 +234,5 @@ def sortbytype(self, ftype):
219
234
raise SystemExit ()
220
235
221
236
222
-
223
-
224
-
225
-
226
-
227
-
228
-
229
-
230
-
231
-
232
-
233
-
234
-
235
-
236
-
237
-
238
-
239
-
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
237
main_gui = fmGUI ()
248
238
main_gui .main_window ()
0 commit comments