Мой код работает нормально, чтобы служить своей цели, но есть небольшая ошибка, которую я не могу преодолеть. Речь идет о команде "makedir" в коде Python.
У меня много файлов в разделе загрузок. Поэтому подумал о сортировке их по типам файлов для организации папки. Проект включает в себя -
Создание каталогов для хранения файлов разных типов в соответствии с
их типы.
Идентификация и перемещение файлов в соответствующие каталоги в соответствии с
их типы.
Я вернул код, указанный ниже.
import os, glob, shutil
os.chdir('/home/something/Downloads')
src_dir = os.path.join('/home/something/Downloads')
try:
os.makedirs('/home/something/Downloads/excel')
os.makedirs('/home/something/Downloads/image')
os.makedirs('/home/something/Downloads/pdf')
os.makedirs('/home/something/Downloads/word')
os.makedirs('/home/something/Downloads/python')
os.makedirs('/home/something/Downloads/text')
os.makedirs('/home/something/Downloads/gimp')
os.makedirs('/home/something/Downloads/video')
os.makedirs('/home/something/Downloads/presentation')
os.makedirs('/home/something/Downloads/zip')
except FileExistsError:
pass
pdfDir = (src_dir + '/pdf')
txtDir = src_dir + '/text'
pyDir = src_dir + '/python'
docDir = src_dir + '/word'
gimpDir = src_dir + '/gimp'
imgDir = src_dir + '/image'
avDir = src_dir + '/video'
pptxDir = src_dir + '/presentation'
zipDir = src_dir + '/zip'
excelDir = src_dir + '/excel'
pdfFiles = glob.glob(src_dir + '/*.pdf')
txtFiles= glob.glob(src_dir + '/*.txt')
pyFiles = glob.glob(src_dir + '/*.py')
docFiles = (glob.glob(src_dir + '/*.docx') + glob.glob(src_dir + '/*.docs') + glob.glob(src_dir + '/*doc') + glob.glob(src_dir + '/*.odt') + glob.glob(src_dir + '/*.DOC'))
gimpFiles = glob.glob(src_dir + '/*.svg') + glob.glob(src_dir + '/*.xcf')
imgFiles = glob.glob(src_dir + '/*.img') + glob.glob(src_dir + '/*.png') + (glob.glob(src_dir + '/*.jpg') + glob.glob(src_dir + '/*.jpeg')+ glob.glob(src_dir +'/*.JPG'))
avFiles = glob.glob(src_dir + '/*.mp4')
pptxFiles = glob.glob(src_dir + '/*.pptx')
zipFiles = glob.glob(src_dir + '/*.zip')
excelFiles = glob.glob(src_dir + '/*.xlxs') + glob.glob(src_dir + '/*.xlsx') + glob.glob(src_dir + '/*.ods')
for files in pdfFiles:
shutil.copy(files, pdfDir)
for files in pyFiles:
shutil.copy(files, pyDir)
for files in txtFiles:
shutil.copy(files, txtDir)
for files in gimpFiles:
shutil.copy(files, gimpDir)
for files in docFiles:
shutil.copy(files, docDir)
for files in imgFiles:
shutil.copy(files, imgDir)
for files in avFiles:
shutil.copy(files, avDir)
for files in pptxFiles:
shutil.copy(files, pptxDir)
for files in zipFiles:
shutil.copy(files, zipDir)
for files in excelFiles:
shutil.copy(files, excelDir)
Работает очень хорошо и служит цели, кроме одна сложность . Если команда «makedirs» встречает имя файла, уже существующее в каталоге «Загрузки», она пропускает команду и не создает новый каталог. Например, если имя файла «изображение» уже существует в каталоге «Загрузки», то команде «makedirs» не удается создать новый каталог с тем же именем, и поэтому типы файлов изображений не сортируются соответствующим образом.
Я не уверен, как устранить эту ошибку, так как нет "directoryExistsError" как "FileExistsError"!
Пожалуйста, руководство.