Открыть все папки, а затем и все файлы в этих папках Python
Есть папка, в ней лежит еще например 10 папок с названием от "0" до "9". В свою очередь в каждой из этих папок лежит по 10 аудиофайлов. В конечном итоге я бы хотел открыть все считать все аудиофайлы и извлечь для них признаки таким образом, чтобы все аудиофайлы назывались по названию их соответствующих папок.
import os
import numpy as np
path = "C:\\Users\\ss\\Desktop\\NN"
for filename in os.listdir(path):
foldername = path + "\\" + filename
print(foldername)
Таким образом я получаю список папок внутри основной папки: C:\Users\ss\Desktop\NN\0 C:\Users\ss\Desktop\NN\1 C:\Users\ss\Desktop\NN\2 C:\Users\ss\Desktop\NN\3 C:\Users\ss\Desktop\NN\4 C:\Users\ss\Desktop\NN\5 C:\Users\ss\Desktop\NN\6 C:\Users\ss\Desktop\NN\7 C:\Users\ss\Desktop\NN\8 C:\Users\ss\Desktop\NN\9 C:\Users\ss\Desktop\NN\Test
Начнем с того, как мне все эти строки с названием папок преобразовать в массив или список из названий:?
Ответы (1 шт):
Если я вас правильно понял - вам нужно это:
import os
array = os.listdir('C:\\Users\\ss\\Desktop\\NN') # получаем список папок из \NN
for i in range(len(array)): # в цикле от первой до последней папки
path = f'C:\\Users\\ss\\Desktop\\NN\\{array[i]}' # получаем директорию i-ой папки
os.chdir(path) # перемещаемся в директорию i-ой папки
path_files = os.listdir(path) # получаем список файлов i-ой папки
for g in range(len(path_files)): # цикле от первого до последнего файла i-ой папки
os.rename(path_files[g], f'Файл номер {g+1} из {i} папки.mp3') # переименовываем g-ый файл в "Файл номер {g+1} из {i} папки.mp3"
Здесь:
array[i] - имя папки, i - номер папки;
path_files[g] - имя файла, g - номер файла.
Вместо f'Файл номер {g+1} из {i} папки.mp3') подставьте нужное вам имя для файла.
Результат работы алгоритма:
Содержимое C:\Users\ss\Desktop\NN\0\
Получаем:
a.mp3 b.mp3 c.mp3
Вывод:
Файл номер 1 из 0 папки.mp3 Файл номер 2 из 0 папки.mp3 Файл номер 3 из 0 папки.mp3
Информация по работе с модулем os: ссылка