Форум сайта python.su
Друзья, нуждаюсь в использовании функции os.listdir(“.”).
В интерпретаторе отрабатывается отлично, но как только записываю код в файл и запускаю через консоль, то ничего не происходит. Вывода никакого не следует.
Записываю собственно следующее:
import os def main(): list_of_files = [i for i in os.listdir(".") if i.endswith('.lst')] print(list_of_files) main()
import os print(os.listdir("."))
Отредактировано Vlad_Ki (Апрель 5, 2016 19:09:22)
Офлайн
Все так
john_16@linux-laptop:/tmp/1> cat t.py import os d = [i for i in os.listdir('.') if i.endswith('.lst')] for i in d : print(i) john_16@linux-laptop:/tmp/1> ll итого 4 -rw-r--r-- 1 john_16 users 0 апр 5 20:10 1.lst -rw-r--r-- 1 john_16 users 0 апр 5 20:11 foo.bar -rw-r--r-- 1 john_16 users 0 апр 5 20:11 pep.txt -rw-r--r-- 1 john_16 users 0 апр 5 20:11 sec.lst -rw-r--r-- 1 john_16 users 92 апр 5 20:12 t.py john_16@linux-laptop:/tmp/1> python3 t.py 1.lst sec.lst
Офлайн
JOHN_16Ну я рассчитываю на то, что программа выведет мне файлы директории, из которой я ее запускаю.
Вы запуская ваш код учитываете рабочую директорию программы?
import os print(os.function())
Отредактировано Vlad_Ki (Апрель 5, 2016 21:11:02)
Офлайн
Пересел за ноут, тут все работает.
ОС на обоих машинах идентичная.
Есть мысли почему так?
Офлайн
Vlad_Ki
Не работает даже это
Vlad_KiСкорее всего, неправильно сохранён файл или неправильно запускается.
Есть мысли почему так?
[guest@localhost t]$ cat t.py
import os
print(os.listdir("."))
[guest@localhost t]$ python3 t.py
['t.py']
[guest@localhost t]$
Отредактировано py.user.next (Апрель 6, 2016 11:45:58)
Офлайн
Vlad_KiВот тут вы не правы! Есть текущая директория - в той который вы сейчас находитесь, и запуская программу, которая может находиться в самых разных местах, ей передается системное окружение, в том числе текущая директория.
Ну я рассчитываю на то, что программа выведет мне файлы директории, из которой я ее запускаю.
os.listdir(os.path.dirname(os.path.abspath(__file__)))
Офлайн
Огромное спасибо за помощь. Изучу еще раз вопрос с учетом рекомендаций и отпишусь.
Офлайн
У меня чудом все заработало, программу уже дописал. Осталось оптимизировать.
Есть вопрос по Вашему ответу, JOHN_16
Как определяется текущая директория? Эта та директория, которая открыта в консоли?
Отредактировано Vlad_Ki (Апрель 8, 2016 12:27:33)
Офлайн
Vlad_Ki
да. Пускай вы открыли консоль и находитесь в C:\1 , 1 - ваша текущая директория. Пускай ваш prog.py находится в C:\1\2\3\prog.py . Вы можете перейти командой cd в директорию 3 и запустить вашу программу. В этот момент текущая директория это 3, в ней же ваша программа. А еще вы можете находясь в директории 1, используя относительные или абсолютные пути вызвать вашу программу, которая находится в директории 3, программа запустится и для нее текущая директория будет 1, так как в ней вы находились когда ввели команду на запуск программы.
Вообще это основы основ.
Офлайн
JOHN_16
Понял, спасибо большое.
Просто я всегда запускаю программу из директории в которой она находится. По этому и переспросил.
Не понятно почему у меня не работало ничего. Но все работает и отлично. Эта проблема меня еще найдет и я с ней разберусь более подробно.
Отредактировано Vlad_Ki (Апрель 8, 2016 23:09:58)
Офлайн