2015-06-19 3 views
11

Я ищу для написания программ на основе консоли в python, которые могут выполнять функции для выполнения общих задач, довольно общие. Можно ли записывать все, записанные на консоль, вызовы печати в функции без необходимости возвращать строку, аналогичную тому, как bash и оболочка Windows позволяют передавать выходные данные программы в текстовый файл, то естьPython захватить весь печатный результат

ipconfig> ipconfig.txt

но делая это внутри программы python, где вызывается функция, все, что было напечатано на консоли внутри этой функции, собрано в виде списка строк, а затем может быть сохранено в txt-файле выбора пользователей?

+0

Несомненно. Запустите скрипт Python из оболочки и используйте оболочку для перенаправления вывода, как обычно. – kindall

ответ

10

Вы можете сделать это, установив sys.stdout быть файл вашего выбора

import sys 

sys.stdout = open('out.dat', 'w') 
print "Hello" 

sys.stdout.close() 

не будет отображать любой выход, но создаст файл с именем out.dat с напечатанным текстом.

Обратите внимание, что это необязательно быть фактическим файлом, но может быть экземпляром StringIO, в котором вы можете просто использовать метод getvalue для доступа ко всему, что было напечатано ранее.

+0

Спасибо, это именно то, что я искал. – BruceJohnJennerLawso

 Смежные вопросы

  • Нет связанных вопросов^_^