this program is seperating different files i.e. audio, video and document and saves them seperately by making different folders i.e. audioFiles, videoFiles, documentFiles here is the code
import os, shutil
dict_extensions = {
'audio_extensions' : ('.mp3', '.m4a', '.wav', '.flac'),
'video_extensions' : ('.mp4', '.mkv', '.MKV', '.flv', '.mpeg'),
'document_extensions' : ('.doc', '.pdf', '.txt'),
}
folderpath = input('enter folder path : ')
def file_finder(folder_path, file_extensions):
# files = []
# for file in os.listdir(folder_path):
# for extension in file_extensions:
# if file.endswith(extension):
# files.append(file)
# return files
return [file for file in os.listdir(folder_path) for extension in file_extensions if file.endswith(extension)]
for extension_type, extension_tuple in dict_extensions.items():
folder_name = extension_type.split('_')[0] + ' Files'
folder_path = os.path.join(folderpath, folder_name)
os.mkdir(folder_path)
for item in file_finder(folderpath, extension_tuple):
item_path = os.path.join(folderpath,item)
item_new_path = os.path.join(folder_path,item)
shutil.move(item_path,item_new_path)
if os.listdir(folder_path)==[]:
os.rmdir(folder_path)
also it will not create the folder when file related to it doesn't exist. but when i rerun it it gives error that folder already exists. so i tried to solve this problem by if else statement but it is still giving the same error. here is the code after small changes:-
import os, shutil
dict_extensions = {
'audio_extensions' : ('.mp3', '.m4a', '.wav', '.flac'),
'video_extensions' : ('.mp4', '.mkv', '.MKV', '.flv', '.mpeg','.MTS'),
'document_extensions' : ('.doc', '.pdf', '.txt','.docx'),
}
folderpath = input('enter folder path : ')
def file_finder(folder_path, file_extensions):
# files = []
# for file in os.listdir(folder_path):
# for extension in file_extensions:
# if file.endswith(extension):
# files.append(file)
# return files
return [file for file in os.listdir(folder_path) for extension in file_extensions if file.endswith(extension)]
# print(file_finder(folderpath, video_extensions))
for extension_type, extension_tuple in dict_extensions.items():
if os.path.exists(extension_type.split('_')[0] + 'Files'):
path=os.path.join(folderpath,extension_type.split('_')[0] + 'Files')
for item in file_finder(folderpath, extension_tuple):
item_path = os.path.join(folderpath,item)
item_new_path = os.path.join(path,item)
shutil.move(item_path,item_new_path)
else:
folder_name = extension_type.split('_')[0] + 'Files'
folder_path = os.path.join(folderpath, folder_name)
os.mkdir(folder_path)
for item in file_finder(folderpath, extension_tuple):
item_path = os.path.join(folderpath,item)
item_new_path = os.path.join(folder_path,item)
shutil.move(item_path,item_new_path)
if os.listdir(folder_path)==[]:
os.rmdir(folder_path)
and the error is
python first_project_edited.py
enter folder path : E:\testing
Traceback (most recent call last):
File "first_project_edited.py", line 33, in <module>
os.mkdir(folder_path)
FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'E:\\testing\\audioFiles'
Aucun commentaire:
Enregistrer un commentaire