學(xué)習(xí)啦>學(xué)習(xí)電腦>電腦安全>局域網(wǎng)安全>

python局域網(wǎng)傳輸文件

時(shí)間: 林澤1002 分享

  如果只是要模擬提交一個(gè)不包含文件字段的表單,實(shí)現(xiàn)起來是很簡單的,但涉及到文件上傳就有一點(diǎn)小復(fù)雜,需要自己對文件進(jìn)行編碼,或者使用第三方模塊。下面是學(xué)習(xí)啦小編收集整理的python局域網(wǎng)傳輸文件,希望對大家有幫助~~

  python局域網(wǎng)傳輸文件

  方法/步驟

  如果機(jī)器上有 PycURL,那么可以使用 PycURL 來上傳文件。

  不過,由于 PycURL 需要用到 curl,在 Windows 下安裝可能會有點(diǎn)麻煩,除 PycURL 外,也有一些其它實(shí)現(xiàn) POST 文件上傳的方式,比如 這兒 的 2 樓有人貼出了一個(gè)將文件進(jìn)行編碼之后再 POST 的方法,另外還有MultipartPostHandler、urllib2_file、poster 等第三方模塊。但 MultipartPostHandler 這個(gè)模塊似乎比較老了,urllib2_file 我試用了一下遇到錯(cuò)誤沒有成功,這兒我想介紹的是另外一個(gè)第三方模塊 poster。

  如果機(jī)器上安裝了 Python 的 setuptools,可以通過下面的命令來安裝 poster:

  easy_install poster

  # test_client.pyfrom poster.encode import multipart_encodefrom poster.streaminghttp import register_openersimport urllib2# 在 urllib2 上注冊 http 流處理句柄register_openers()# 開始對文件 "DSC0001.jpg" 的 multiart/form-data 編碼# "image1" 是參數(shù)的名字,一般通過 HTML 中的 標(biāo)簽的 name 參數(shù)設(shè)置# headers 包含必須的 Content-Type 和 Content-Length# datagen 是一個(gè)生成器對象,返回編碼過后的參數(shù)datagen, headers = multipart_encode({"image1": open("DSC0001.jpg", "rb")})# 創(chuàng)建請求對象request = urllib2.Request("http://localhost:5000/upload_image", datagen, headers)# 實(shí)際執(zhí)行請求并取得返回print urllib2.urlopen(request).read()

  5很簡單,文件就上傳完成了。

  其中那個(gè) register_openers() 相當(dāng)于以下操作:

  from poster.encode import multipart_encodefrom poster.streaminghttp import StreamingHTTPHandler, StreamingHTTPRedirectHandler, StreamingHTTPSHandlerhandlers = [StreamingHTTPHandler, StreamingHTTPRedirectHandler, StreamingHTTPSHandler]opener = urllib2.build_opener(*handlers)urllib2.install_opener(opener)

  6另外,poster 也可以攜帶 cookie,比如:

  opener = poster.streaminghttp.register_openers()opener.add_handler(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))params = {'file': open("test.txt", "rb"), 'name': 'upload test'}datagen, headers = poster.encode.multipart_encode(params)request = urllib2.Request(upload_url, datagen, headers)result = urllib2.urlopen(request)

python局域網(wǎng)相關(guān)文章:

1.局域網(wǎng)python快速上手

2.怎么搭建局域網(wǎng)YUM服務(wù)器

3.局域網(wǎng)怎么搭建YUM服務(wù)器

4.網(wǎng)絡(luò)管理員無工作經(jīng)驗(yàn)簡歷怎么寫

5.遠(yuǎn)程操作Mysql數(shù)據(jù)庫

python局域網(wǎng)傳輸文件

如果只是要模擬提交一個(gè)不包含文件字段的表單,實(shí)現(xiàn)起來是很簡單的,但涉及到文件上傳就有一點(diǎn)小復(fù)雜,需要自己對文件進(jìn)行編碼,或者使用第三方模塊。下面是學(xué)習(xí)啦小編收集整理的python局域網(wǎng)傳輸文件,希望對大家有幫助~~ python局域網(wǎng)
推薦度:
點(diǎn)擊下載文檔文檔為doc格式

精選文章

  • 局域網(wǎng)Python中使用POST方式上傳文件
    局域網(wǎng)Python中使用POST方式上傳文件

    如果只是要模擬提交一個(gè)不包含文件字段的表單,實(shí)現(xiàn)起來是很簡單的,但涉及到文件上傳就有一點(diǎn)小復(fù)雜,需要自己對文件進(jìn)行編碼,或者使用第三方模

  • Python2好還是Python3好
    Python2好還是Python3好

    Python的優(yōu)點(diǎn)自然不用多說,它可以分為兩種版本,兩種版本都有很大的區(qū)別,因此對于初學(xué)者來說,不知道該選擇Python2還是Python3,到底是Python2號還是Pyt

  • 局域網(wǎng)Python2.75的安裝及環(huán)境配置教程
    局域網(wǎng)Python2.75的安裝及環(huán)境配置教程

    Python的語法簡潔,功能強(qiáng)大,有大量的第三方開發(fā)包(模塊),非常適合初學(xué)者上手。同時(shí)Python不像java一樣對內(nèi)存要求非常高,適合做一些經(jīng)常性的任務(wù)方面

  • 局域網(wǎng)如何安裝python
    局域網(wǎng)如何安裝python

    最近正在學(xué)習(xí)python,突然發(fā)現(xiàn)python比java好玩多了 。下面是學(xué)習(xí)啦小編收集整理的局域網(wǎng)如何安裝python,希望對大家有幫助~~ 局域網(wǎng)如何安裝python 工具/原料

2900272