Retorno de caracteres nulos leyendo un fichero

Sebastián Lezica slezica en fibertel.com.ar
Lun Feb 7 08:43:35 CET 2005


Buenas y santas...
 
    Molesto en esta oportunidad porque tengo un problema algo extraño al
leer ficheros, y no doy en la tecla del porqué.
 
    Al leer un fichero de texto, en algunas oportunidades me retorna una
cadena del largo correcto pero con todos caracteres nulos. Con un pequeño
parche evité el problema, reintentando la lectura luego de una pequeña
pausa, pero no me convence como solución definitiva...
 
    Esto me ocurre en Linux (en dos distribuciones diferentes una con Python
2.3.4 y otra 2.3.5), los ficheros que leo residen en el disco local, pero
son copiados desde un proceso en otro puesto de trabajo con Windows,
mediante samba.
 
    El fichero lo leo de un solo tiro (nunca tiene mas de 5Kb): contenido =
open('fichero', 'rb').read()
La variable 'contenido', se llena casi siempre con lo que corresponde, pero
en algunas oportunidades se carga con una cadena del mismo largo que el
fichero pero conteniendo solo caracteres nulos ('\x00\x00....').
 
    Probé también un 'while select([fichero], [], []) <> ([], [], [])'
previo pero la incidencia sigue ocurriendo... 
 
    Supongo que tendrá algo que ver con el mismo samba, estoy leyendo el
fichero muy proximo a cuando es escrito sin dudas, pero en todo caso
esperaria un error de lectura, y no una respuesta válida pero con contenido
incorrecto.
 
    Si alguien puede darme alguna pista de si esto es evitable o detectable
de forma mas prolija, se lo agradeceré, mil gracias!!!,
 
Sebastián Lezica
 




Más información sobre la lista de distribución Python-es