Actualmente estoy tratando de iniciar una carga de archivo con urllib2 y la biblioteca urllib2_file. Aquí está mi código:Problemas de carga de archivo de pitll urllib2
import sys
import urllib2_file
import urllib2
URL='http://aquate.us/upload.php'
d = [('uploaded', open(sys.argv[1:]))]
req = urllib2.Request(URL, d)
u = urllib2.urlopen(req)
print u.read()
He puesto este archivo .py en mi directorio Mis documentos y se coloca un acceso directo a ella en mi carpeta Enviar a (la URL de acceso directo es).
Cuando hago clic derecho en un archivo, selecciono Enviar a, y selecciono Aquate (mi pitón), abre un símbolo del sistema por una fracción de segundo y luego lo cierra. Nada se carga.
Sabía que probablemente había un error, así que escribí el código en CL python, línea por línea. Cuando ejecuté la línea u=urllib2.urlopen(req)
, no obtuve un error; alt text http://www.aquate.us/u/55245858877937182052.jpg
En su lugar, el cursor simplemente comenzó a parpadear en una nueva línea debajo de esa línea. Esperé un par de minutos para ver si algo pasaría, pero simplemente me quedé así. Para que pare, tuve que presionar ctrl + break.
¿Qué pasa con este script?
¡Gracias de antemano!
[Editar] Olvidé mencionar - cuando ejecuté el script sin los datos de solicitud (el archivo) se ejecutó como un amuleto. ¿Es un problema con urllib2_file?
[editar 2]:
import MultipartPostHandler, urllib2, cookielib,sys
import win32clipboard as w
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),MultipartPostHandler.MultipartPostHandler)
params = {"uploaded" : open("c:/cfoot.js") }
a=opener.open("http://www.aquate.us/upload.php", params)
text = a.read()
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardText(text)
w.CloseClipboard()
Ese código funciona como un encanto si se ejecuta a través de la línea de comandos.
Usted dice que urllib2_file no es necesario en Python 2.5 y posteriores, pero esta funcionalidad aún no existe en python. Basado en http://bugs.python.org/issue3244, las cargas multipart/form-data pueden estar aquí en 2.7, pero aún no están publicadas. – archbishop
No he visto el problema desde que publiqué esto hace más de un año, pero en ese momento, pude duplicar la funcionalidad de urllib2_file en Python 2.6 e incluso la página de la biblioteca dice que solo es necesaria para Python 2.3 y 2.4. Solo puedo suponer que el error se refiere a un problema separado (pero probablemente muy relacionado). :-) –
El enlace al código de muestra es un enlace muerto. – neowulf33