¿Con qué frecuencia Python descarga un archivo?

Resuelto Tim McJilton asked hace 14 años • 5 respuestas
  1. ¿Con qué frecuencia Python descarga un archivo?
  2. ¿Con qué frecuencia Python se descarga a la salida estándar?

No estoy seguro de (1).

En cuanto a (2), creo que Python pasa a la salida estándar después de cada nueva línea. Pero, si sobrecarga la salida estándar para que sea un archivo, ¿se descarga con tanta frecuencia?

Tim McJilton avatar Jul 02 '10 23:07 Tim McJilton
Aceptado

Para las operaciones con archivos, Python utiliza el almacenamiento en búfer predeterminado del sistema operativo a menos que lo configure de otra manera. Puede especificar un tamaño de búfer, sin búfer o con búfer de línea.

Por ejemplo, la función de apertura toma un argumento de tamaño de búfer.

http://docs.python.org/library/functions.html#open

"El argumento de almacenamiento en búfer opcional especifica el tamaño de búfer deseado para el archivo:"

  • 0 significa sin búfer,
  • 1 significa línea almacenada en búfer,
  • cualquier otro valor positivo significa utilizar un búfer de (aproximadamente) ese tamaño.
  • Un almacenamiento en búfer negativo significa utilizar el valor predeterminado del sistema, que generalmente tiene un búfer de línea para dispositivos tty y un búfer completo para otros archivos.
  • Si se omite, se utiliza el valor predeterminado del sistema.

código:

bufsize = 0
f = open('file.txt', 'w', buffering=bufsize)
Corey Goldberg avatar Jul 02 '2010 19:07 Corey Goldberg

También puede forzar el vaciado del búfer en un archivo mediante programación con el flush()método.

with open('out.log', 'w+') as f:
    f.write('output is ')
    # some work
    s = 'OK.'
    f.write(s)
    f.write('\n')
    f.flush()
    # some other work
    f.write('done\n')
    f.flush()

Esto me ha resultado útil al seguir un archivo de salida con tail -f.

kortina avatar Mar 10 '2011 05:03 kortina