В чем разница между всеми методами os.popen ()? - PullRequest
7 голосов
/ 09 ноября 2008

Я просматривал документацию Python и увидел, что существует 4-5 различных версий popen (), например, os.popen (), os.popen2 () и т. д.

Помимо того, что некоторые из них включают stderr , а другие нет, каковы различия между ними и когда вы будете использовать каждый из них? Документация не очень хорошо объясняла это.

Ответы [ 3 ]

14 голосов
/ 09 ноября 2008

Джейсон имеет право. Подводя итог так, что это легче увидеть:

  • os.popen () -> стандартный вывод
  • os.popen2 () -> (стандартный ввод, стандартный вывод)
  • os.popen3 () -> (стандартный ввод, стандартный вывод, стандартный вывод)
  • os.popen4 () -> (stdin, stdout_and_stderr)
13 голосов
/ 09 ноября 2008

Я бы порекомендовал использовать модуль subprocess, который имеет все функции, которые имеют эти функции, и многое другое.

10 голосов
/ 09 ноября 2008

popen2 не фиксирует стандартную ошибку, popen3 фиксирует стандартную ошибку и предоставляет уникальный дескриптор файла для нее. Наконец, popen4 фиксирует стандартную ошибку, но включает ее в тот же файловый объект, что и стандартный вывод.

...