Diferença na abertura de um arquivo em Python no Linux versus Windows

0

Quais são as diferenças, se houver, em como o Python lida com abrir / fechar um arquivo no Windows versus fazer o mesmo no Linux? Eu entendo que no Linux o kernel age como uma interface entre o software e os dados armazenados em um dispositivo de bloco de hardware. O Windows faz basicamente a mesma coisa, ou existe algo sob o capô que o Python faz para garantir que as informações sejam interpretadas corretamente?

    
por davelupt 23.06.2014 / 03:15

1 resposta

1

No Windows, a chamada da API CreateFile é usada para abrir ou criar um arquivo. Isso retorna um identificador de arquivo, que é análogo a um descritor de arquivo no Linux. Dessa perspectiva, funciona mais ou menos da mesma maneira.

Por outro lado, como um programador Python, você deve estar ciente de que o Python faz algumas coisas de maneira diferente, que não estão relacionadas à implementação de baixo nível. Por exemplo, no Linux, abrir o arquivo no modo binário funciona da mesma maneira que o modo de texto, mas no Windows, onde tudo espera terminações de linha CRLF, se você abrir o arquivo no modo de texto, o Python silenciosamente converte sua \n em \r\n . Isso é obviamente uma coisa ruim se você está realmente escrevendo dados binários. Isso tudo é bem documentado, portanto, você não precisa se preocupar com detalhes no nível do kernel.

    
por 23.06.2014 / 06:13