Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 24, 2018 20:20:49

Areostar
Зарегистрирован: 2018-06-27
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

обход дерева каталогов

делаю так:

 list_dir = os.walk("data/json")
for dir in list_dir:
        print(dir)

получаю:

('data/json', , )
('data/json\\01.10.2018', , )
('data/json\\02.10.2018', , )

делаю:

list_dir = os.walk("data/json")

for dir in list_dir:
for item in dir:
print(item)

получаю:

data/json


data/json\01.10.2018


data/json\02.10.2018




НО мне надо получить отдельно список из первого катежа(имена папок)

Пото инфу из 2 и 3 картежа!

item - не прокатывает! как быть?

Отредактировано Areostar (Окт. 24, 2018 20:21:55)

Офлайн

#2 Окт. 24, 2018 21:04:13

Areostar
Зарегистрирован: 2018-06-27
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

обход дерева каталогов

ответ вроде как нашёл?

 list_dir =[x[0] for x in os.walk("data/json")]
делее меняеи мндекс у x

Отредактировано Areostar (Окт. 24, 2018 21:04:30)

Офлайн

#3 Окт. 24, 2018 22:40:36

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

обход дерева каталогов

можно проще

 >>> from glob import glob
>>> import os
>>> os.chdir('/usr/local/lib/slang')
>>> g = glob('**/*',recursive=True)
>>> for i in g:print(i):
v2
v2/modules
v2/modules/histogram-module.so
v2/modules/json-module.so
v2/modules/zlib-module.so
v2/modules/socket-module.so
v2/modules/sysconf-module.so
v2/modules/fork-module.so
v2/modules/stats-module.so
v2/modules/base64-module.so
v2/modules/chksum-module.so
v2/modules/rand-module.so
v2/modules/termios-module.so
v2/modules/varray-module.so
v2/modules/fcntl-module.so
v2/modules/slsmg-module.so
v2/modules/csv-module.so
v2/modules/iconv-module.so
v2/modules/select-module.so
v2/modules/png-module.so
>>> 

Отредактировано vic57 (Окт. 24, 2018 22:43:02)

Офлайн

#4 Окт. 26, 2018 05:12:30

Areostar
Зарегистрирован: 2018-06-27
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

обход дерева каталогов

vic57
можно проще

это вариант но не очень удобно.

Если я ищю конктерно .json это одно. А если любые файлы(с любым расширением) может быть геморно.

К тому же мне желательно получить имена папок отдельно. в данном случае имя папки это дата в файлах помимо всего содержится время. Их надо обьединить чтоб записать в бд полнуюб дату.

Могу ли я получить количество элементов итератора? len() - не работает

Офлайн

#5 Окт. 26, 2018 08:43:06

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

обход дерева каталогов

Areostar
А если любые файлы(с любым расширением) может быть геморно.
Почему?
Areostar
Могу ли я получить количество элементов итератора?
Очевидно нет. Итераторы бывают бесконечные. Другой процесс может насоздавать новых файлов пока вы тут итерируетесь и т.п.



Отредактировано doza_and (Окт. 26, 2018 08:43:52)

Офлайн

#6 Окт. 26, 2018 11:47:42

Areostar
Зарегистрирован: 2018-06-27
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

обход дерева каталогов

Ясною Копаем далше

Офлайн

#7 Окт. 26, 2018 13:52:13

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

обход дерева каталогов

Areostar
это вариант но не очень удобно.
что именно? делаете split('/') получаете список файлов с директориями

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version