Mejor respuesta
Usted pregunta: ¿Qué hace truncar un archivo al abrir un archivo con la opción w + en Python?
Truncar un archivo a cero significa descartar todo su contenido: el tamaño del archivo se vuelve 0, por lo que queda vacío (y los datos se han ido), pero el archivo todavía existe en el sistema de archivos.
En UNIX y sistemas operativos similares a UNIX (y en general en POSIX -compatible con los sistemas operativos) existe la llamada al sistema truncate(2)
que se puede usar para descartar parte o todo el contenido de un archivo (hacia el final de un archivo).
En tales sistemas, la llamada al sistema open(2)
se puede especificar con un parámetro flags que especifica el O\_TRUNC
marca que indica que el contenido del archivo debe truncarse a 0 al abrirlo.
De manera similar, la biblioteca de E / S estándar de C La función fopen()
se puede especificar un modo de apertura w+
que indica que el archivo se está abriendo para escritura y que debe crearse si no lo hace. t existe, o que debería ser truncado a 0 si ya existe.
Y dado que la función open()
en Python funciona de manera similar a la fopen()
función en C, w+
significa truncar el contenido del archivo a una longitud cero antes de escribir nada.
Respuesta
El pregunta necesita más aclaración. ¿Quién está haciendo el truncamiento? ¿El mismo proceso de Python que abrió la transmisión o algún otro proceso? ¿El archivo de Python se está escribiendo en el archivo mientras otro hilo / proceso lo está truncando? ¿La operación de truncar está sucediendo en un bucle o algo así?
La respuesta a su pregunta depende de lo que esté sucediendo con el archivo cuando estas operaciones de escritura y truncamiento están sucediendo …
Además … protip: no mire los documentos de python2. Mira los documentos de python3. Y usa python3 en general