Привет у меня есть папка, которая состоит из 1000 изображений, все из которых являются PNG. Имя файла: 1.png, 2.png, 3.png ... все до 1000.

Вместо того, чтобы вручную создавать 10 подпапок для копирования и вставки изображений в каждую подпапку, я хочу переместить первые 100 изображений в папку 1, второй пакет изображений, т.е. 101-200 в папку 2, 201-300 в папку 3 и так до папки 10.

Возможно ли, что какой-то код Python, который может проанализировать имя изображения и создать новую папку и переместить туда соответствующие изображения?

0
Excek889 20 Дек 2019 в 19:03

2 ответа

Вы можете взглянуть на pathlib , который предоставляет методы для зацикливания содержимого папки.

С Path.iterdir () вы сможете циклически перебирать изображения. С Path.mkdir () вы сможете создавать нужные вам папки. Для перемещения файлов вы можете использовать Path.replace ( ) .

В качестве альтернативы вы можете использовать системные команды для этого, используя os.system .

0
Henri 20 Дек 2019 в 16:17

Вы можете сделать это, используя pathlib. Этот код был протестирован в Python 3.8, но он должен работать и на других версиях.

from pathlib import Path

#0-99 (folder_0)
#100-199 (folder_1)
#...
MAX_FILES_PER_DIR = 100    

pngDirectory = Path()
pngFiles = pngDirectory.glob('*.png')   #find all png files in directory
for pngFile in pngFiles:
    fileNumber = int(pngFile.name.split('.')[0])            #get number from filename
    folderNumber = int(fileNumber / MAX_FILES_PER_DIR)      #find which folder it belongs in
    #create folder to put files in and mkdir if it doesn't exist
    currentFolder = pngDirectory / "folder_{}".format(folderNumber)
    if not currentFolder.exists():
        currentFolder.mkdir()
    #move your png file into that folder
    pngFile.rename(currentFolder / pngFile.name)
1
Will Bender 20 Дек 2019 в 16:46