O que truncar um arquivo faz ao abrir um arquivo com a opção w + em python?


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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *