本文目錄一覽:
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)
Python的文件上傳
做的是web開發嗎?可以用框架來解決這個問題,推薦使用Django框架,靈活強大,特別適合做新聞、博客類網站。用Python上傳文件,要用到中間件,找一個適合你用的中間件,通過這個中間件上傳,如果是自己寫的話會很麻煩。存入數據庫的不應該是文件而應該是文件的路徑,存入了多少條數據這個就比較好實現了,用一個計數變量,保存一條就增加1,最後返回這個變量就可以了。
python文件轉字節流上傳?
圖片,視頻都是二進制的,你讀取的時候寫 rb ,然後你在請求的時候記得把視頻轉成.content
像這樣load_src = requests.get(“http://”+srcs[i], headers=headers).content
如何在 Python 中模擬 post 表單來上傳文件
在機器上安裝了Python的setuptools工具,可以通過下面的命令來安裝 poster:
easy_install poster
裝完之後,安裝下面代碼就可以實現post表單上傳文件了:
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2
# 在 urllib2 上註冊 http 流處理句柄
register_openers()
# 開始對文件 “DSC0001.jpg” 的 multiart/form-data 編碼
# “image1” 是參數的名字,一般通過 HTML 中的 input 標籤的 name 參數設置
# headers 包含必須的 Content-Type 和 Content-Length
# datagen 是一個生成器對象,返回編碼過後的參數
datagen, headers = multipart_encode({“image1”: open(“DSC0001.jpg”, “rb”)})
# 創建請求對象(localhost服務器IP地址,5000服務器端口)
request = urllib2.Request(“”, datagen, headers)
# 實際執行請求並取得返回
print urllib2.urlopen(request).read()
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/188564.html