LinuxForum.Fans
Тема

python, диалог выбора файла из каталога. в консоли

Автор: Eeb_ei4m 7 сообщений 1068 просмотров
24.02.2015 21:10 · отредактировано #415586

Всем здравствуйте.
В баше я делал так:

select FILENAME in *; do; break; done

Имя файла присвоено $FILENAME

А как подобное сделать на питоне? В гугле про консоль не нашёл.

24.02.2015 21:13 #415588

можно использовать glob, но писать интерактивку придется самому

24.02.2015 21:25 · отредактировано #415592

Да я не против писать, а почему именно glob? Хоть немного по подробнее напишите.
Я пытался написать при помощи os.listdir() и enumerate(), но enumerate() не сортирует файлы по номерам.
Все индексы в перемешку, не годится.

24.02.2015 21:31 #415593
"Eeb>ei4m" написал:
Да я не против писать, а почему именно glob? Хоть немного по подробнее напишите.

глоб предназначен для хождения по файловой системе. так же как в баше корректнее делать find чем for по выхлопу ls. целая библиотека, там много полезного.

"Eeb>ei4m" написал:
Я пытался написать при помощи os.listdir() и enumerate(), но enumerate() не сортирует файлы по номерам.
Все индексы в перемешку, не годится.

собрать все в список, отсортировать по своим критериям, и выдавать на экран с нумерацией из списка

24.02.2015 22:00 · отредактировано #415602

os.listdir() создаёт список, так же как glob.glob()
а enumerate() выводит пары индекс -> значение

Научите сортировать список по порядковым номерам.
В смысле перестроить индексы в списке по порядковым номерам.

посмотрел я доки на glob :
glob — Unix style pathname pattern expansion
This is done by using the os.listdir() and fnmatch.fnmatch()
(For tilde and shell variable expansion, use os.path.expanduser() and os.path.expandvars().)

Не понимаю чего тут сладкого? И чем оно лучше os.listdir()? Если только по маске фильтровать.

P.S. И кстати, в баше НЕ корректнее делать find чем for по выхлопу ls, это разные команды используемые для разных целей.

24.02.2015 22:05 #415605

а кто вам мешает список, полученный от os.listdir() сначала отсортировать?

24.02.2015 22:17 · отредактировано #415606

Уже нашёл sort()

Всё, уже написал. Но очень странно если в питоне нет готового инструмента для этого.
Скорее всего он есть но ответа хрен дождёшся.

Войдите или зарегистрируйтесь, чтобы ответить.