Ok .. Więc prawdopodobnie Przykładem jest dobrym sposobem, aby wyjaśnić ten problemtłumienia druku jak stdout pytona
Więc mam coś takiego:
if __name__=="__main__"
result = foobar()
sys.stdout.write(str(result))
sys.stdout.flush()
sys.exit(0)
Teraz ten scenariusz jest wywoływana z rubinem skrypt ... i zasadniczo analizuje wynik tam. Ale foobar() ma wiele zapisów dotyczących drukowania .. i stdout wypłukuje wszystkie te odbitki. Czy istnieje sposób (poza rejestrowaniem mathodów) mogę zmodyfikować coś tutaj, co automatycznie tłumi te wydruki i po prostu spłukuje ten wynik? Dzięki
niesamowite .. tylko to, co potrzebne :) – Fraz
A co z użyciem 'sys.stdout = open (os.devnull, 'w')' zamiast 'StringIO()'? – ovgolovin
@ovgolovin - zdecydowanie rozsądne, jeśli nie ma oczekiwań, że możesz potrzebować wyjścia. Dzięki StringIO możesz go odzyskać w razie potrzeby, zanim zresetujesz oryginalną wartość 'stdout'. –