plik testowy o nazwie == a.py ==Jak napisać bajtów do stdout w python3.3
import os
if __name__ == '__main__':
for x in range(0,1000):
try:
os.sys.stdout.buffer.write(b"hello\r\n")
os.sys.stdout.buffer.flush()
except OSError:
pass
Jest ok, gdy pracuje on sam. Ale występuje problem w następującym przypadku:
- Uruchom python a.py | bardziej
- nacisnąć klawisze Ctrl + C wyjść
Następnie mam wyjątku OSError: OSError (22 'nieprawidłowy argument') w < nazwą _io.TextIOWrapper = '' = tryb 'W' kodowania '=' cp936 > zignorowano:
Złapałem OSError już wokół operacji os.sys.stdout.buffer, ale nadal nie działa.
Jeśli nie używam os.sys.stdout.buffer.flush, to nie ma komunikatu o błędzie. Jeśli po prostu używam print(), wszystko jest w porządku.
Jak poprawnie zapisać bajty na stdout?
Używam Windows 7 64-bitowy i Python 3.3.0 32-bitowy.
możliwe duplikat [? Jak napisać danych binarnych w stdout w python 3] (http://stackoverflow.com/questions/908331/how-to-write-binary-data -in-stdout-in-python-3) –