Tuesday 14 November 2017

Open stdin as binary options


Existe um método desacoplado de passar em um arquivo binário sem sofrer a penalidade de python tendo stdout unbuffered para toda a duração de execução de um programa (se eu pretender usar apenas cmdline e não abrir (. Rb) Parece que - u é o Somente maneira de ler em um arquivo como dados binários (de cmdline) - u Forçar stdin, stdout e stderr para ser totalmente unbuffered. In sistemas onde importa, também colocar stdin, stdout e stderr em modo binário. : 44 por algum motivo, python tem - u (saída unbuffered que torna as coisas muito lentas), também controlar se um arquivo no operador, como test. py lt myfile é tratado como entrada binária. Eu corri em um problema em que eu Tinha que usar esse formato de entrada para uma classe e no processo de analisar o arquivo, ele iria ler o equivalente a 39ctrlz39 e matar o aplicativo. então minha esperança era que há uma maneira de tratar um arquivo como binário em, w / o dizendo Python ter unbuffered saída ndash pyInTheSky Oct 4 11 at 12:02 2 Respostas Talvez você poderia evitar o modo de arquivo Pythons, em vez de pegar o fileno fora do arquivo sys. stdin-like objeto, e usando os. read () para pegar dados de It Este código mudará a entrada padrão (somente) para o modo unbuffered. Usando isso, você não precisará invocar o interpretador com - u. Unix somente. No entanto, não tenho certeza quais os efeitos colaterais que isso poderia ter, por exemplo, na função built-in rawinput. Tenha cuidado mesmo no modo de não-bloqueio, se selecionar diz que o fd está pronto para ler você ainda precisará pegar OSError e verificar para e. errno os. errno. EAGAIN. Tais erros devem ser ignorados.

No comments:

Post a Comment