Python urllib2文件上传问题 [英] Python urllib2 file upload problems

查看:273
本文介绍了Python urllib2文件上传问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在尝试使用urllib2和 urllib2_file 启动文件上传图书馆.这是我的代码:

I'm currently trying to initiate a file upload with urllib2 and the urllib2_file library. Here's my code:

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()

我已将此.py文件放在我的文档"目录中,并将其快捷方式放在发送至"文件夹中(快捷方式URL为).

I've placed this .py file in my My Documents directory and placed a shortcut to it in my Send To folder (the shortcut URL is ).

当我右键单击文件时,选择发送到",然后选择"Aquate"(我的python),它会打开命令提示符并显示一秒钟,然后将其关闭.什么都没有上传.

When I right click a file, choose Send To, and select Aquate (my python), it opens a command prompt for a split second and then closes it. Nothing gets uploaded.

我知道可能会发生错误,因此我逐行将代码键入到CL python中. 当我运行u=urllib2.urlopen(req)行时,我没有得到任何错误. 替代文字http://www.aquate.us/u/55245858877937182052.jpg

I knew there was probably an error going on so I typed the code into CL python, line by line. When I ran the u=urllib2.urlopen(req) line, I didn't get an error; alt text http://www.aquate.us/u/55245858877937182052.jpg

相反,光标只是开始在该行下面的新行上闪烁.我等了几分钟,看是否会发生什么,但是事情就这样了.要使其停止,我必须按ctrl + break.

instead, the cursor simply started blinking on a new line beneath that line. I waited a couple of minutes to see if something would happen but it just stayed like that. To get it to stop, I had to press ctrl+break.

这个脚本怎么了?

提前谢谢!

忘了-当我在没有请求数据(文件)的情况下运行脚本时,它的运行就像一个魅力. urllib2_file是否有问题?

Forgot to mention -- when I ran the script without the request data (the file) it ran like a charm. Is it a problem with urllib2_file?

:

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()

如果您通过命令行运行该代码,那么它的工作原理就像一个魅力.

That code works like a charm if you run it through the command line.

推荐答案

如果您使用的是Python 2.5或更高版本,则urllib2_file既不必要又不受支持,因此请检查您正在使用的版本(并可能要升级).

If you're using Python 2.5 or newer, urllib2_file is both unnecessary and unsupported, so check which version you're using (and perhaps upgrade).

如果您使用的是Python 2.3或2.4(urllib2_file支持的唯一版本),请尝试运行

If you're using Python 2.3 or 2.4 (the only versions supported by urllib2_file), try running the sample code and see if you have the same problem. If so, there is likely something wrong either with your Python or urllib2_file installation.

此外,您似乎并没有使用urllib2_file的两种受支持格式中的任何一种来处理POST数据.尝试改用以下两行中的一个:

Also, you don't seem to be using either of urllib2_file's two supported formats for POST data. Try using one of the following two lines instead:

d = ['uploaded', open(sys.argv[1:])]
## --OR-- ##
d = {'uploaded': open(sys.argv[1:])}

这篇关于Python urllib2文件上传问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆