перенаправление вывода системного вызова в python

#python #redirect #pipe #system-calls

#python #перенаправление #канал #системные вызовы

Вопрос:

Я хочу выполнить os.system (‘ls’) на python. возвращаемым значением этого оператора является целое число с кодом ошибки .. но я хочу получить содержимое текущего каталога в виде строки. Как этого добиться?

Ответ №1:

os.listdir(".")


В общем, если вы хотите вызвать функцию и получить аргументы, вам следует использовать subprocess.Popen() . Но большая часть базового содержимого каталога находится в os модуле, так что вам не нужно этого делать.

Комментарии:

1. subprocess.Popen() вызывает программы и не вызывает функции. В любом случае, это позволило бы вам захватить его вывод, но Python os.listdir() был бы лучшим способом выполнить конкретно то, что хочет сделать OP (как указано).

Ответ №2:

Python как встроенная функциональность, такая как os.listdir() или os.walk() для перечисления содержимого в файловой системе. Самостоятельный запуск ‘ls’ — это очень плохой стиль. В общем взгляните на документацию модуля подпроцесса, предоставляющую вам всю гибкость для взаимодействия с внешними командами.