本文目錄一覽:
- 1、python手機文件上傳至電腦?
- 2、Python的文件上傳
- 3、如何把python代碼上傳到伺服器上
- 4、python mac 瀏覽器傳文件
- 5、python request/讀寫/上傳文件
- 6、怎麼用http上傳一個文件到伺服器 python
python手機文件上傳至電腦?
python手機文件上傳至電腦?這樣的情況,可以把手機文件先上傳到雲盤,然後在電腦端在雲盤中在下載到電腦磁碟就可以了,這樣就不會是手機與電腦互傳,通過雲盤上傳比較簡單方便的
Python的文件上傳
做的是web開發嗎?可以用框架來解決這個問題,推薦使用Django框架,靈活強大,特別適合做新聞、博客類網站。用Python上傳文件,要用到中間件,找一個適合你用的中間件,通過這個中間件上傳,如果是自己寫的話會很麻煩。存入資料庫的不應該是文件而應該是文件的路徑,存入了多少條數據這個就比較好實現了,用一個計數變數,保存一條就增加1,最後返回這個變數就可以了。
如何把python代碼上傳到伺服器上
使用pip或easy_install可以管理和安裝python的package包,實際上它們都是從pypi伺服器中搜索和下載package的。目前在pypi伺服器上,有超過三萬多個package,同時還允許我們將自己的代碼也上傳發布到伺服器上。這樣,世界上的所有人都能使用pip或easy_install來下載使用我們的代碼了。
具體步驟如下:
首先創建項目文件和setup文件。
目錄文件結構如下:
project/
simpletest/
__init__.py
test.py
setup.py
假設項目文件只有一個simpletest包,裡面有一個test.py文件。
創建的setup.py文件格式大致如下,其中,install_requires欄位可以列出依賴的包信息,用戶使用pip或easy_install安裝時會自動下載依賴的包。詳細的格式參考文檔。
from setuptools import setup, find_packages
setup(
name = ‘simpletest’,
version = ‘0.0.1’,
keywords = (‘simple’, ‘test’),
description = ‘just a simple test’,
license = ‘MIT License’,
install_requires = [‘simplejson=1.1’],
author = ‘yjx’,
author_email = ‘not@all.com’,
packages = find_packages(),
platforms = ‘any’,
)
然後將代碼打包。
打包只需要執行python
setup.py xxx命令即可,其中xxx是打包格式的選項,如下:
# 以下所有生成文件將在當前路徑下 dist 目錄中
python setup.py bdist_egg # 生成easy_install支持的格式
python setup.py sdist # 生成pip支持的格式,下文以此為例
發布到pypi。
發布到pypi首先需要註冊一個賬號,然後進行如下兩步:
註冊package。輸入python setup.py register。
上傳文件。輸入python setup.py sdist upload。
安裝測試
上傳成功後,就可以使用pip來下載安裝了。
另外,pypi還有一個測試伺服器,可以在這個測試伺服器上做測試,測試的時候需要給命令指定額外的”-r”或”-i”選項,如python
setup.py register -r “”,python
setup.py sdist upload -r “”,pip
install -i “” simpletest。
發布到測試伺服器的時候,建議在linux或cygwin中發布,如果是在windows中,參考文檔,需要生成.pypirc文件
python mac 瀏覽器傳文件
selenium提供的sendkeys方法上傳文件我就不贅述,網上很多教程,但是缺點也很明顯並不是完全適用各種場景如果上傳文件不是input類型,就完全無法適用就算是input也不能完全適用亦沒辦法完全模擬用戶的操作。
在執行當前輸入路徑地址的時候,必須切換為英文輸入法,否則會導致輸入地址後無法跳轉需要注意在mac上必須打開安全性與隱私中的輔助功能完全控制。
Python由荷蘭數學和計算機科學研究學會的吉多·范羅蘇姆於1990年代初設計,作為一門叫做ABC語言的替代品Python提供了高效的高級數據結構,還能簡單有效地面向對象編程。
python request/讀寫/上傳文件
python 讀寫文件:
data_json = json.dumps(result_r) #json字元串
f =open(‘E://XXX.txt’,”a+”) #打開文件,追加+讀寫
f.write(data_json) # data_json 寫入XXX.txt’文件
f.seek(0) # 游標移動到文件開頭
lines = f.read() # 逐行讀入
f.close() #關閉文件
mode 打開的方式(r,w,a,x,b,t,r+,w+,a+,U)
r 以只讀方式打開文件。文件的指針會放在文件的開頭。
w 以寫入方式打開文件。文件存在覆蓋文件,文件不存在創建一個新文件。
a 以追加方式打開文件。如果文件已存在,文件指針放在文件末尾。如果文件不存在,創建新文件並可寫入。
r+ 打開一個文件用於讀寫,文件指針會放在文件的開頭
w+ 打開一個文件用於讀寫,文件存在覆蓋文件,文件不存在創建一個新文件。
a+ 打開一個文件用於讀寫,如果文件已存在,文件指針放在文件末尾。如果文件不存在,創建新文件並可寫入。
記憶方法:記住r讀,w寫,a追加,每個模式後加入+號就變成可讀寫。
f =open(‘E://xxx.txt’,”a+”) / f=open(r’E://xxx.txt’,mode=’a+’,encoding=’UTF-8′)
踩坑1
沒有加encoding=’UTF-8’,可能會報如下錯:
import requests # 使用 request函數需導入 request 庫
import json #使用 JSON 函數需要導入 json 庫: import json 。
param ={} #請求body
url =’http://域名/api’
header = {‘content-type’:’application/json’}
r = requests.post(url,json=param,headers=header) #發送post請求
result_r = r.json() #請求返回的json傳入對象result_r
data_json = json.dumps(result_r) #將 Python-result_r對象轉為字元串 json.dumps()
文件上傳請求(csv文件)
file_path = “xxx.csv” 文件路徑
uploaddata = {“file”:open(file_path, “rb”)}
file_upload_result = requests.post(api_URL, files=uploaddata, cookies=cookie)
怎麼用http上傳一個文件到伺服器 python
首先,標準HTTP協議對上傳文件等表單的定義在這裡:wwwietforg/rfc/rfc1867txt 大概數據包格式如下:
單文件:
Content-type: multipart/form-data, boundary=AaB03x
–AaB03x
content-disposition: form-data; name=”field1″
Joe Blow
–AaB03x
content-disposition: form-data; name=”pics”; filename=”file1.txt”
Content-Type: text/plain
… contents of file1.txt …
–AaB03x–
多文件:
Content-type: multipart/form-data, boundary=AaB03x
–AaB03x
content-disposition: form-data; name=”field1″
Joe Blow
–AaB03x
content-disposition: form-data; name=”pics”
Content-type: multipart/mixed, boundary=BbC04y
–BbC04y
Content-disposition: attachment; filename=”file1.txt”
其次,python上傳文件的幾種方法:
1 自己封裝HTTP的POST數據包:http//stackoverflowcom/questions/680305/using-multipartposthandler-to-post-form-data-with-python
import httplibimport mimetypesdef post_multipart(host, selector, fields, files): content_type, body = encode_multipart_formdata(fields, files) h = httplib.HTTP(host) h.putrequest(‘POST’, selector) h.putheader(‘content-type’, content_type) h.putheader(‘content-length’, str(len(body))) h.endheaders() h.send(body) errcode, errmsg, headers = h.getreply() return h.file.read() def encode_multipart_formdata(fields, files): LIMIT = ‘———-lImIt_of_THE_fIle_eW_$’ CRLF = ‘\r\n’ L = [] for (key, value) in fields: L.append(‘–‘ + LIMIT) L.append(‘Content-Disposition: form-data; name=”%s”‘ % key) L.append(”) L.append(value) for (key, filename, value) in files:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/247846.html