У меня более 1000 папок в «моих документах». В каждой папке есть только 4 фотографии, которые нужно называть «Север», «Восток», «Юг» и «Запад» в этом порядке. В настоящее время они называются DSC_XXXX. Я написал этот скрипт, но он не выполняется.Как переименовать несколько файлов в папках с помощью python?
import sys, os
folder_list = []
old_file_list = []
newnames = [North, South, East, West]
for file in os.listdir(sys.argv[1]):
folder_list.append(file)
for i in range(len(folder_list)):
file = open(folder_list[i], r+)
for file in os.listdir(sys.argv[1] + '/' folder_list[i]):
old_file_list.append(file)
os.rename(old_file_list, newnames[i])
Мой метод мышления состоял в том, чтобы получить все имена 1000 папок и сохранить их в папке-папке. Затем откройте каждую папку и сохраните 4 имени изображения в файле old_file_list. Оттуда я хотел бы использовать os.rename (old_file_list, newnames [i]), чтобы переименовать 4 фотографии на северо-восток Юг и Запад. Затем я хочу, чтобы в этом цикле было столько папок, что в «моих документах». Я новичок в python, и любая помощь или предложения были бы весьма признательны.
Если новые имена применяются «в таком порядке, «вам нужно сначала отсортировать содержимое папки, потому что' os.listdir' возвращает произвольно упорядоченный «список». Кроме того, вы можете выполнять итерацию непосредственно над 'folder_list' вместо использования' range (len()) 'для работы с индексами. – TigerhawkT3
О, и 'os.listdir()' уже возвращает 'list', поэтому вам не нужно перебирать его и строить новый. Просто сохраните ссылку на него: 'folder_list = os.listdir (sys.argv [1])'. – TigerhawkT3
Кроме того, вам не нужно открывать() 'папки ... хотя вы все равно маскируете его с помощью переменной цикла. – TigerhawkT3