Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2010 18:41:56

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить список файлов в директории.

Здравствуйте. Хочу получить список файлов в директории.
Например:

/
foo/
bar.zib
egg.bz
То относительно директории / мне нужен список из двух элементов: .
Пробую делать так:
filelist = [os.path.abspath(i) for i in os.listdir(options.path) if os.path.isfile(i)]
Но получаю пустой список. Как достичь нужного результата?

P.S.
Доку читал.
Тут пишут что Return True if path is an existing regular file.
Ведь regular file это и есть то, что мне нужно, да?

Python 2.7
Fedora 13



Офлайн

#2 Окт. 27, 2010 20:40:21

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Получить список файлов в директории.

проверьте еще раз. Именно так и нужно делать.



Офлайн

#3 Окт. 27, 2010 22:29:06

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Получить список файлов в директории.

UsCr
listdir возвращает имена файлов. если ваша cwd не совпадает с /, то isfile просто не может их найти.



Офлайн

#4 Окт. 27, 2010 22:53:24

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Получить список файлов в директории.

Александр, спасибо. О таком не подумал.



Офлайн

#5 Окт. 28, 2010 02:48:45

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Получить список файлов в директории.

Daevaorn
listdir возвращает имена файлов. если ваша cwd не совпадает с /, то isfile просто не может их найти
вобще-то, возвращается список всего что находится по указанному пути.

попробуйте так:
filelist = [os.path.abspath(i) for i in os.listdir(options.path) if os.path.isfile(os.path.join(options.path, i))]



Отредактировано (Окт. 28, 2010 06:03:16)

Офлайн

#6 Окт. 28, 2010 05:22:38

Eliont
От:
Зарегистрирован: 2010-05-30
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить список файлов в директории.

os.walk - рекурсивный обход директорий.
Правда не знаю, работает ли эта функция под линуксом.



Офлайн

#7 Окт. 28, 2010 07:56:00

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Получить список файлов в директории.

pyuser
вобще-то, возвращается список всего что находится по указанному пути.
В том контексте это было не принципиально. Суть в другом.



Офлайн

#8 Окт. 28, 2010 09:58:40

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить список файлов в директории.

Eliont
Правда не знаю, работает ли эта функция под линуксом.
Работает….



Офлайн

#9 Ноя. 1, 2010 12:55:39

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить список файлов в директории.

Daevaorn
listdir возвращает имена файлов. если ваша cwd не совпадает с /, то isfile просто не может их найти.
Да. Я понял. Нужно просто дописывать префикс пути:
filelist = [options.path + i for i in os.listdir(options.path) if os.path.isfile(options.path + i)]



Офлайн

#10 Ноя. 1, 2010 16:13:54

grok
От:
Зарегистрирован: 2010-09-09
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить список файлов в директории.

Аналогичный вопрос обсуждался в этой теме =)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version