Python - печатать на стандартный вывод на & # 8220; терминале & # 8221;

StackOverflow https://stackoverflow.com/questions/1000360

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Код Python, который, кажется, работает, показан ниже. Проблема в том, что я пытаюсь напечатать некоторые результаты на экране, но ничего не происходит. Я пробовал и print, и raw_input, но ничего не происходит ... Знаете ли вы другой способ сделать это?

# Set up fields of reply message based on query
def prepareReply():
    global authorReply, authorReplyLen, localConvId, originConvId, blbContentAndUntUnz, linkName

    print "PLOP!"
    raw_input("blabla")

    #print "="*10

Спасибо!

Это было полезно?

Решение

Чтобы перенаправить стандартный вывод на файл, который вы можете прочитать, в данном случае это файл:

class PyLogger:

  def __init__(self, source):
    self.file_handle = open('Python_Log.txt', 'a')
    self.source=source
    self.buf = []

  def write(self, data):
    self.buf.append(data)
    if data.endswith('\n'):
      self.file_handle = open('Python_Log.txt', 'a')
      self.file_handle.write('\t' * indent_level)
      self.file_handle.write(self.source + "::" + ''.join(self.buf))
      self.file_handle.close()
      self.buf = []

  def __del__(self):
    if self.buf != []:
      self.file_handle = open('Python_Log.txt', 'a')
      self.file_handle.write('\t' * indent_level)
      self.file_handle.write(self.source + "::" + ''.join(self.buf) + '\n')
      self.file_handle.close()      
    self.file_handle.close()

import sys
sys.stdout = PyLogger('stdout')
sys.stderr = PyLogger('stderr')

Другие советы

import sys
print "Hi!"
sys.stdout.flush()

Это неверное предположение, но, глядя на формулировку в ваших комментариях, вы увидите, что это может быть приложение веб-сервера (подсказка: было бы полезно подробнее узнать о вашей среде). В этом случае стандартный вывод, вероятно, идет куда-то еще, по крайней мере, не в браузер.

Как вы на самом деле запускаете этот код? Набираете ли вы " python myprogram.py " в командной строке, или вы нажали «Перезагрузить» в своем браузере?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top