python post 上传文件_Python脚本POST上传数据以及文件
Python脚本POST上传数据以及文件
三流编码员
2012-09-23
1953 阅读
查了众多,发现都不满意,不是这里有问题,就是那里有问题,真是郁闷,最后参照新浪微博Python SDK写了一个。花了我两个小时,毕竟初学Python,写的不好,分享一下
#/usr/bin/python
#author Yee
#coding=utf-8
import sys,os,urllib2
import mimetypes
import mimetools
def get_content_type(filepath):
return mimetypes.guess_type(filepath)[0] or 'application/octet-stream'
def encode_multipart_formdata(fields, files = {}):
boundary = mimetools.choose_boundary()
CRLF = '\r\n'
data = []
for key in fields:
data.append('--' + boundary)
data.append('Content-Disposition: form-data; name="' + key + '"')
data.append('')
data.append(fields[key])
for key in files:
data.append('--' + boundary)
data.append('Content-Disposition: form-data; name="'+ key +'"; filename="'+ files[key]['filename'] + '"')
data.append('Content-Type: "' + files[key]['type'] + '"')
data.append('')
data.append(files[key]['filedata'])
data.append('--' + boundary + '--')
data.append('')
body = CRLF.join(data)
content_type = 'multipart/form-data; boundary=%s' % boundary
return {'content_type':content_type,'body':body}
def http_call(url,params,files = {}):
params = encode_multipart_formdata(params, files)
req = urllib2.Request(url, data = params['body'])
if params['content_type']:
req.add_header('Content-Type',params['content_type'])
resp = urllib2.urlopen(req)
body = resp.read()
return body
def httpopenfile(url):
filedata = urllib2.urlopen(url)
data = filedata.read()
fileinfo = filedata.info()
if fileinfo.has_key("Content-Length"):
filesize = fileinfo["Content-Length"]
else:
filesize = 0
filename = os.path.basename(url)
filetype = get_content_type(filename)
fileInfo = {'filename':filename,'size':filesize,'type':filetype,'filedata':data}
return fileInfo
def sendwb(url,data,imgpath = ''):
if imgpath != '':
file = httpopenfile(imgpath)
ret = http_call(url,data,files = {'file':file})
return;
ret = http_call(url,data)
作者:三流编码员
左手代码,右手可乐!
发表评论
python post 上传文件_Python脚本POST上传数据以及文件相关推荐
- python读excel 包含格式_python里读写excel等数据文件的几种常用方式
python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...
- android读取excel文件_python里读写excel等数据文件的几种常用方式
python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...
- python处理fasta文件_Python脚本:fasta文件单序列信息提取
使用Python对fasta格式的序列进行基本信息统计 预期设计输出文件中包括fasta文件名,序列长度,GC含量以及ATCG各自的含量. Python脚本编辑 使用的文件 test.fasta st ...
- python 怎么拷贝一个文件到一个新的文件_Python脚本提取不同文件夹里面的文件到一个新的文件...
这条博客分享一个脚本,实现将不同文件夹的我们需要的文件提取到一个新的文件下.如: 这是原来文件下的文件,我将它重新命名,然后复制到下图的文件夹下,实现将很多不同文件夹下很多我们想要的文件提取出来,省的 ...
- python获取pdf页数_Python分割指定页数的pdf文件方法
Python分割指定页数的pdf文件方法 如下所示: from PyPDF2 import PdfFileWriter, PdfFileReader # 开始页 start_page = 0 # 截止 ...
- python解压zip文件_Python中最快解压zip文件的方法
假设现在的上下文(LCTT 译注:context,计算机术语,此处意为业务情景)是这样的:一个 zip 文件被上传到一个Web 服务中,然后 Python 需要解压这个 zip 文件然后分析和处理其中 ...
- python运行系统找不到指定文件_系统找不到指定文件_系统找不到指定的文件_python 系统找不到指定的文件 - 云+社区 - 腾讯云...
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我正在构建一个依赖于另一个库的特定库,当我这样做时,我收到以下警告消息:&quo ...
- python运行pyc文件_Python什么情况下会生成pyc文件?
作为Python爱好者,需要了解.py脚本的基本运行机制及特性: 在很多工作上Python的运行流程基本上取决于用户,因此源码不需要编译成二进制代码(否则无法实现大部分贴近用户的特性),而直接从源码运 ...
- python 查找指定文件_python实现在目录中查找指定文件的方法
本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 代码如下: import os from glob import glob #用到了 ...
- python函数传值还是地址_python中给函数传参是传值还是传引用
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
最新文章
- Vue父组件网络请求回数据后再给子组件传值demo示例
- springMVC整合shiro权限框架示例与实践
- Linux下Bash入门学习笔记
- C++学习之路 | PTA乙级—— 1093 字符串A+B (20 分)(精简)
- Oracle导入dmp文件报12504,ORA-12504:TNS :监听程序在 CONNECT_DATA 中未获得SERVICE_NAME...
- java.lang.ClassNotFoundException: retrofit2.Retrofit$Builder解决思路
- MySQL group-by-modifiers
- python版本可执行可嵌入_Python程序打包成exe可执行文件的方法探究
- dp-整数划分问题(理论分析)
- 数字图像处理【经典女郎 Lena 图片】的使用由来~(学习之余来一个调味剂啦)
- 宽度学习(Broad Learning System)
- 「硬见小百科」14个常用的电路基础公式换算
- 弹性法计算方法的mck法_弹性的计算方法
- CNN卷积神经网络(图解CNN)
- C++虚函数、多继承和虚基类学习心得 内存布局
- 家庭居室装修需做哪些项目
- 宾格代词-me、you_34
- node判断文件是否为加密文件
- Python面试题之Python面试题汇总
- 毕业月薪3万起!算法工程师九成硕博学历,腾讯成AI人才收割机
热门文章
- WPF 控件专题 StackPanel控件详解
- 数据库系统概论--精简版
- 数学建模之预测方法总结与案例
- MySQL如何使用.sql后缀的文件
- nokia n9 android 4.4,NOKIA N9获APK兼容层 可安装Android应用
- 学习笔记(01):ThreeJS视频教程-了解着色器基础
- JAVAWEB开发之数据库简介、MySQL的安装与卸载(处理中文乱码)、以及MySQL语言(DDL、DML、DCL、DQL)的详解和使用
- Win32写一个极简定时关机软件的全部过程讲解
- Android 设置电话号码拦截(黑名单)
- android 黑名单中电话拦截