Пайтон: как заносить в список все файлы и папки папки начиная с маршрута? [удвоенная]

У этого вопроса уже есть ответ здесь:

Этот вопрос похож на эту другую, однако это что-то различное и из-за этого я думаю, что он заслуживает отдельный ответ. Он код, из которого я исхожу, - следующий (я это достал из упомянутого вопроса):

from os import walk, getcwd

def ls(ruta = getcwd()):
     listaarchivos = []
     for (_, _, archivos) in walk(ruta):
          listaarchivos.extend(archivos)
     return listaarchivos

print(ls(ruta = getcwd()))

Мне хотелось бы изменять две вещи:

  • Мне хотелось бы, что вместо того, чтобы быть настоящим маршрутом каталога работы, это был любой маршрут, что я давал ему, например: C:. Если бы ему дал этот маршрут, он надеялся бы, что меня печатает список всех файлов и папки моего жесткого диска.
  • Мне хотелось бы, что также включило имя папок, которые внутри маршрута данного каталога также как и папок, которые находятся внутри папок.

В упомянутом вопросе, последнем коде точки 4, кажется, делает то, что я говорю:

from os import walk, getcwd

def ls(ruta = getcwd()):
    listaarchivos = []
    for (_, _, archivos) in walk(ruta):
        listaarchivos.extend(archivos)
return listaarchivos

Однако одинокое отвечает частично на мой вопрос, потому что мне кроме того нужно, чтобы появились имена папок, которые внутри данного маршрута.

Как он мог бы изменять данный код для того, чтобы он делал то, что я хочу? Большое спасибо из-за вашего внимания.

1
задан 13.04.2017, 16:00
1 ответ

Ты можешь изменять ее funciГіn, что использует Относящийся к Богородице в Ваш ответ для того, чтобы просто aГ±ada подкаталоги tambiГ©n:

from os import walk, getcwd


def ls(ruta = getcwd()):
    lista = []
    for _, subdirs, archivos in walk(ruta):
        lista.extend(subdirs+archivos)
    return lista

Относительно маршрута только ты должен иметь в виду, что Пайтон использует / свойственные системам Linux, и ее не подмел обратная \, которые используют Windows:

Например для папки в windows с маршрутом:

C:\Programacion\Python\Tkinter

В Пайтоне Дебес менять все обратные бруски на наклонные бруски (оператор divisiГіn):

C:/Programacion/Python/Tkinter
1
ответ дан 24.11.2019, 12:15
  • 1
    Вопрос дублирован. Ответ - копия той, которую дал пользователь Мариано, и нет ссылки на нее. – toledano 06.12.2016, 20:49
  • 2
    @toledano тот же самый в Вашем вопросе ссылается на ответ Относящегося к Богородице, я просто изменяю lí nea listaarchivos.extend(subdirs+archivos) для того, чтобы он сохранял его tambié n подкаталоги и объяснять это ему маршрутов. Всех форм añ ado ссылка tambié n aquí в ответ Относящегося к Богородице. – FJSevilla 06.12.2016, 20:59
  • 3
    @toledano FJSevilla объяснил это мне маршрутов – Mr. Baldan 06.12.2016, 21:01
  • 4
    @FJSevilla твой có я говорю, что он, должно быть, не хорошо, потому что он дает мне ошибку: NameError: name 'listaarchivos' is not defined – Mr. Baldan 06.12.2016, 21:31
  • 5
    @Mr. Они парализуют Исправленный, измените имя списка, объявив ее, но не despué s... :( – FJSevilla 06.12.2016, 21:34

Теги

Похожие вопросы