adında bir test dosyası == a.py == içinde stdoutyazma bayt 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
tek başına çalıştırıldığında It is ok. Ancak şu durumda sorun var:
- Çalıştır python a.py | 'Kodlama = 'cp936' w '= mod' < _io.TextIOWrapper adı =' de OSError (22 'Geçersiz değişken') daha fazla
- CTRL + C
Sonra durum OSError var çıkmak için > yok sayılır
OS.sys'ü zaten os.sys.stdout.buffer işlemlerinin çevresinde yakalarım ancak hala yanlıştır.
os.sys.stdout.buffer.flush dosyasını kullanmazsam, bir hata mesajı yoktur. Sadece print() kullanırsam, her şey yolunda.
Stdout'a bayt nasıl yazılır?
Windows 7 64 bit ve Python 3.3.0 32 bit kullanıyorum.
olası yinelenen [? Piton 3'te stdout içinde ikili veri yazmak için nasıl] (http://stackoverflow.com/questions/908331/how-to-write-binary-data -in-stdout-in-piton-3) –