Zanurkuj w Pythonie/Standardowy strumień wejścia, wyjścia i błędów: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
koniec |
orty i styl |
||
Linia 2:
== Standardowy strumień wejścia, wyjścia i błędów==
Użytkownicy Uniksa są już
Standardowe wyjście i strumień błędów (powszechnie używana skrócona forma to ''stdout'' i ''stderr'') są strumieniami danych wbudowanymi do każdego systemu Unix. Kiedy coś wypisujesz, idzie to do strumienia ''stdout''; kiedy wystąpi błąd w twoim programie, a program wypisze informacje pomocne przy debugowaniu (jak traceback w Pythonie), to wszystko pójdzie do strumienia <tt>stderr</tt>. Te dwa strumienie są zwykle połączone z oknem terminala, na
'''Przykład 10.8. Wprowadzenie do ''stdout'' i ''stderr'''''
Linia 49:
fsock.close() #(7)
# To zostanie wypisane w interaktywnym oknie IDE (lub w terminalu, jeśli skrypt został uruchomiony
# Zawsze, zanim przekierujemy standardowe wyjście, przypisujemy gdzieś <tt>stdout</tt>, dzięki temu, będziemy potem mogli do niego normalnie wrócić.
# Otwieramy plik do zapisu. Jeśli plik nie istnieje, zostanie
# Całe późniejsze wyjście zostanie przekierowane do pliku, który właśnie otworzyliśmy.
# Zostanie to wypisane tylko do pliku <tt>out.log</tt>; nie będzie widoczne w oknie IDE lub w terminalu.
# Przywracamy <tt>stdout</tt> do początkowej
# Zamykamy plik <tt>out.log</tt>.
Linia 78:
# Otwieramy plik <tt>error.log</tt>, gdzie chcemy przechowywać informacje debugujące.
# Przekierowujemy standardowy strumień błędów, dzięki przypisaniu obiektu
# Rzucamy wyjątek. Zauważmy, że na ekranie wyjściowym nic nie zostanie wypisane. Wszystkie informacje ''traceback'' zostały zapisane w <tt>error.log</tt>.
# Zauważmy także, że nie
Ponieważ powszechnie wypisuje się informacje o błędach na standardowy strumień błędów, Python posiada skrótową składnie, która można wykorzystać do bezpośredniego przekierowywania wyjścia.
Linia 120:
# Dzięki temu po prostu wypiszemy całą zawartość pliku <tt>binary.xml</tt>. (Użytkownicy Windowsa powinni wykorzystać polecenie <tt>type</tt> zamiast <tt>cat</tt>.)
# Polecenie to wypisuje zawartość pliku <tt>binary.xml</tt>, ale znak "|" (ang. ''pipe''), oznacza, że standardowe wyjście nie zostanie wypisana na ekran. Zamiast tego, zawartość standardowego wyjścia zostanie wykorzystane jako standardowe wejście następnego programu, który w tym przypadku jest skryptem Pythona.
# Zamiast określać modułu (np. <tt>binary.xml</tt>), dajemy "-", który każe
Więc w jaki sposób skrypt "wie", żeby czytać ze standardowego wejścia, gdy plik gramatyki to "-"? To nie jest żadna magia; to tylko właśnie prosty kod.
|