У меня есть куча изображений с именами файлов, представляющими диапазон значений, которые мне нужно разделить на отдельные изображения. Например, для изображения с именем файла 1000-1200.jpg мне нужно 200 отдельных копий изображения с именами 1000.jpg, 1001.jpg, 1002.jpg и т. Д.

Я немного знаю Python, но любые предложения по быстрому решению этой проблемы будут высоко оценены.

РЕДАКТИРОВАТЬ: Вот что у меня есть до сих пор. Единственная проблема заключается в том, что он удаляет начальные нули из имени файла, и я не совсем уверен, как это исправить.

import os
from shutil import copyfile

fileList = []
filePath = 'C:\\AD\\Scripts\\to_split'

for file in os.listdir(filePath):
    if file.endswith(".jpg"):
        fileList.append(file)

for file in fileList:
    fileName = os.path.splitext(file)[0].split("-")
    rangeStart = fileName[0]
    rangeEnd = fileName[1]
    for part in range(int(rangeStart), int(rangeEnd)+1):
        copyfile(os.path.join(filePath, file), os.path.join(filePath, str(part) + ".jpg"))
0
amblerd99 28 Ноя 2018 в 03:11

1 ответ

Лучший ответ

Давайте разберемся в проблеме:

Шаг 1. Получить все файлы в папке

Шаг 2. для каждого файла Получить строку из имени файла

Шаг 3. Разделите строку на две int a и b с помощью str.split ("-") < / а>

Шаг 4. for x in range(a, b), скопируйте файл и установите имя файла как str (x)

0
Jeff 28 Ноя 2018 в 00:34