問題描述
我目前正在嘗試使用 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
支持的唯一版本),請嘗試運行 示例代碼 看看你是否有同樣的問題.如果是這樣,您的 Python 或 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 文件上傳問題的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!