Форум сайта python.su
Пытаюсь присвоить методу os.listdir путь через строку:
—-
import os listOfFolders = os.listdir('Changer') """Создает и возвращает кортеж из файлов внутри папки Changer""" countOfFolders = len(listOfFolders) """Присваивает переменной countOfFolders число подпапок в папке Changer""" for f in range(0, countOfFolders): PathOne = str('Changer/' + listOfFolders[f]) listOfFiles = os.listdir(PathOne) countOfFiles = len(listOfFiles) print('Список файлов папки ' + listOfFolders[f]) for i in range(0, countOfFiles): print(listOfFiles[i])
Отредактировано Winged_Zhiraff (Май 4, 2014 04:29:13)
Офлайн
Winged_ZhiraffБебебебе, плохоfor f in range(0, countOfFolders): listOfFolders[f]
for f in os.listdir('Changer'): PathOne = str('Changer/' + f)
path_one = 'Changer/{}'.format(f)
Офлайн
Спасибо, и правда жуткий быдлокод, исправлюсь. Так лучше? Насчёт .format просто ещё не прочитал, что за зверь.
import os folders = os.listdir('folder') for n in range(len(folders)): files = os.listdir('folder/' + folders[n]) print('Список файлов папки ' + folders[n] + ':') for i in range(len(files)): print(files[i])
Офлайн
Winged_Zhirafffor n in range(len(folders))
Офлайн
для объединения путей
>>> import os >>> >>> os.path.join('a', 'b', 'c') 'a/b/c' >>>
Офлайн
FishHook, не поверишь - ошибку выдавало. Пришлось через жопу
В коде, который написан - да, работает.
В том, ради которого затевалось -
TypeError: list indices must be integers, not str
Можешь дальше делать фэйспалмы, но это:
import os folders = os.listdir('folder') for n in range(len(folders)): files = os.listdir('folder/'+folders[n]) print(folders[n]) for i in range(len(files)): mypath = str('folder/' + folders[n] + "/") myname = str(files[i])[:4] + str(files[i])[22:] os.rename(mypath + files[i], mypath + myname)
Отредактировано Winged_Zhiraff (Май 4, 2014 12:32:45)
Офлайн
Winged_ZhiraffМожет быть я дебил?
FishHook, не поверишь - ошибку выдавало.
Офлайн
А нет, не я.
Офлайн