Я хотел бы переименовать файл с помощью os.rename () следующим образом:
x_y.jpg
x
должно быть из списка ['2', '3', '4', '5', '8', '9', '10']
.
y
следует считать от 1
до 10
. После достижения 10
, x
должен перейти ко второму числу в списке (здесь: '3'
), а y
должен снова начать подсчет. Примерно так:
2_1.jpg
2_2.jpg
2_3.jpg
...
3_1.jpg
3_2.jpg
Я думаю, что лучше всего будет построить вложенный l oop, но я не уверен, как это сделать, потому что я новичок с python. Я подумал о что-то вроде этого, но это не работает должным образом. Переименовывается только первый файл. Затем появляется ошибка о том, что файл уже существует.
my_list = ['2', '3', '4', '5', '8', '9', '10']
included_extensions = ['jpg', 'JPG']
directory = [fn for fn in os.listdir(source_folder)
if any(fn.endswith(ext) for ext in included_extensions)]
for y, file in enumerate(directory):
for x in range(10):
for x in my_list:
os.rename(os.path.join(source_folder,file), os.path.join(destination_folder, ''.join([str(x),'_',str(y+1),'.jpg'])))