2011-02-16 5 views
9

Estoy portar más de un program of mine de python2 a python3, y yo estoy pegando el siguiente error: AttributeError: 'HTTPMessage' object has no attribute 'getdate'¿Cómo puedo obtener el tiempo de última modificación con python3 urllib?

Aquí está el código:

conn = urllib.request.urlopen(fileslist, timeout=30) 
last_modified = conn.info().getdate('last-modified') 

En esta sección se trabajó bajo Python 2.7, y hasta ahora no han podido encontrar el método correcto para obtener esta información en Python 3.1.

El contexto completo es un método de actualización. Extrae los nuevos archivos de un servidor a su base de datos local, pero solo si el archivo en el servidor es más nuevo que el archivo local. Si hay una forma más inteligente de lograr esta funcionalidad que simplemente comparar las marcas de tiempo de los archivos locales y remotos, entonces estoy abierto a eso también.

Respuesta

12

conn.headers['last-modified'] funciona tanto en Python 2 como en Python 3. La comparación de las marcas de archivos me parece razonable.

+0

¡Gracias, eso funcionó! – Daenyth

+3

Además, el encabezado devuelve una cadena, pero el método antiguo devuelve 'struct_time' (o similar). Esto debería funcionar para masajearlo: 'time_struct = time.strptime (last_modified, '% a,% d% b% Y% H:% M:% S% Z')' – Daenyth

Cuestiones relacionadas