Есть ли эффективный способ сохранить переменные с последовательным изменением имен файлов в Python? - PullRequest
0 голосов
/ 06 ноября 2019
import numpy as np
from skimage import io

ori[0] = io.imread('/Dataset/A01/0000.tif')
...
ori[100] = io.imread('/Dataset/A01/0099.tif')

Я хочу сохранить файлы (0000 ~ 0099.tif) в список. Но, если я напишу код, как указано выше, для сохранения переменных потребуется около 100 строк. Есть ли эффективный способ сделать то же самое? Конкретно, изменение от 0000 до 0099 автоматически является ключом для решения этой проблемы. Но я понятия не имею. Не могли бы вы дать мне несколько советов по этому вопросу?

Ответы [ 3 ]

3 голосов
/ 06 ноября 2019

Попробуйте с циклом над range. И поддерживать временную переменную для увеличения пути к файлу.

import numpy as np
from skimage import io

file = '/Dataset/A01/00{}.tif'
for i in range(100):
    file_inc = str(i).zfill(2)
    ori[i] = io.imread(file.format(file_inc))
1 голос
/ 06 ноября 2019

Подойдет простое понимание списка.

ori = [io.imread(f'/Dataset/A01/{i:04}.tif') for i in range(100)]
1 голос
/ 06 ноября 2019

Вы слышали о петлях? Это очевидный вариант использования для одного. Вы можете использовать метод строки zfill (), чтобы заполнить имена файлов начальными нулями.

for i in range(100):
    filename = str(i).zfill(4)
    ori[i] = io.imread(f'/Dataset/A01/{filename}.tif')

Редактировать: Как рекомендует chepner, вы можете использовать f-строки для добавления ведущих нулей.

for i in range(100):
    ori[i] = io.imread(f'/Dataset/A01/{i:04d}.tif')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...