Melhor resposta
Você pergunta: O que truncar um arquivo faz ao abrir um arquivo com a opção w + em python?
Truncar um arquivo para zero significa descartar todo o seu conteúdo: o tamanho do arquivo torna-se 0, então fica vazio (e os dados sumiram), mas o arquivo ainda existe no sistema de arquivos.
Em UNIX e sistemas operacionais semelhantes ao UNIX (e em geral em POSIX -compliant operacionais sistemas) há a truncate(2)
chamada de sistema que pode ser usada para descartar parte ou todo o conteúdo de um arquivo (perto do final de um arquivo).
Em tais sistemas, a chamada do sistema open(2)
pode ser especificada como um parâmetro sinalizadores especificando o O\_TRUNC
sinalizador informando que o conteúdo do arquivo deve ser truncado para 0 ao abri-lo.
Da mesma forma, a biblioteca de E / S padrão C função fopen()
pode ser especificada como um modo de abertura w+
indicando que o arquivo está sendo aberto para gravação e que deve ser criado se não for não existe ou deve ser truncado para 0 se já existir.
E, como a função open()
em Python funciona de maneira semelhante à fopen()
função em C, w+
significa truncar o conteúdo do arquivo para comprimento zero antes de escrever qualquer coisa.
Resposta
O questão precisa de mais esclarecimentos. Quem está fazendo o truncamento? O mesmo processo python que abriu o stream ou algum outro processo? O arquivo python está gravando no arquivo enquanto outro thread / processo o está truncando? A operação de truncar está acontecendo em um loop ou algo assim?
A resposta à sua pergunta depende do que está acontecendo com o arquivo quando essas operações de gravação e truncar estão acontecendo …
Além disso … protip: não olhe para a documentação do python2. Veja a documentação do python3. E use python3 em geral