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上传数据以及文件相关推荐

  1. python读excel 包含格式_python里读写excel等数据文件的几种常用方式

    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...

  2. android读取excel文件_python里读写excel等数据文件的几种常用方式

    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...

  3. python处理fasta文件_Python脚本:fasta文件单序列信息提取

    使用Python对fasta格式的序列进行基本信息统计 预期设计输出文件中包括fasta文件名,序列长度,GC含量以及ATCG各自的含量. Python脚本编辑 使用的文件 test.fasta st ...

  4. python 怎么拷贝一个文件到一个新的文件_Python脚本提取不同文件夹里面的文件到一个新的文件...

    这条博客分享一个脚本,实现将不同文件夹的我们需要的文件提取到一个新的文件下.如: 这是原来文件下的文件,我将它重新命名,然后复制到下图的文件夹下,实现将很多不同文件夹下很多我们想要的文件提取出来,省的 ...

  5. python获取pdf页数_Python分割指定页数的pdf文件方法

    Python分割指定页数的pdf文件方法 如下所示: from PyPDF2 import PdfFileWriter, PdfFileReader # 开始页 start_page = 0 # 截止 ...

  6. python解压zip文件_Python中最快解压zip文件的方法

    假设现在的上下文(LCTT 译注:context,计算机术语,此处意为业务情景)是这样的:一个 zip 文件被上传到一个Web 服务中,然后 Python 需要解压这个 zip 文件然后分析和处理其中 ...

  7. python运行系统找不到指定文件_系统找不到指定文件_系统找不到指定的文件_python 系统找不到指定的文件 - 云+社区 - 腾讯云...

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我正在构建一个依赖于另一个库的特定库,当我这样做时,我收到以下警告消息:&quo ...

  8. python运行pyc文件_Python什么情况下会生成pyc文件?

    作为Python爱好者,需要了解.py脚本的基本运行机制及特性: 在很多工作上Python的运行流程基本上取决于用户,因此源码不需要编译成二进制代码(否则无法实现大部分贴近用户的特性),而直接从源码运 ...

  9. python 查找指定文件_python实现在目录中查找指定文件的方法

    本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 代码如下: import os from glob import glob #用到了 ...

  10. python函数传值还是地址_python中给函数传参是传值还是传引用

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

最新文章

  1. Vue父组件网络请求回数据后再给子组件传值demo示例
  2. springMVC整合shiro权限框架示例与实践
  3. Linux下Bash入门学习笔记
  4. C++学习之路 | PTA乙级—— 1093 字符串A+B (20 分)(精简)
  5. Oracle导入dmp文件报12504,ORA-12504:TNS :监听程序在 CONNECT_DATA 中未获得SERVICE_NAME...
  6. java.lang.ClassNotFoundException: retrofit2.Retrofit$Builder解决思路
  7. MySQL group-by-modifiers
  8. python版本可执行可嵌入_Python程序打包成exe可执行文件的方法探究
  9. dp-整数划分问题(理论分析)
  10. 数字图像处理【经典女郎 Lena 图片】的使用由来~(学习之余来一个调味剂啦)
  11. 宽度学习(Broad Learning System)
  12. 「硬见小百科」14个常用的电路基础公式换算
  13. 弹性法计算方法的mck法_弹性的计算方法
  14. CNN卷积神经网络(图解CNN)
  15. C++虚函数、多继承和虚基类学习心得 内存布局
  16. 家庭居室装修需做哪些项目
  17. 宾格代词-me、you_34
  18. node判断文件是否为加密文件
  19. Python面试题之Python面试题汇总
  20. 毕业月薪3万起!算法工程师九成硕博学历,腾讯成AI人才收割机

热门文章

  1. WPF 控件专题 StackPanel控件详解
  2. 数据库系统概论--精简版
  3. 数学建模之预测方法总结与案例
  4. MySQL如何使用.sql后缀的文件
  5. nokia n9 android 4.4,NOKIA N9获APK兼容层 可安装Android应用
  6. 学习笔记(01):ThreeJS视频教程-了解着色器基础
  7. JAVAWEB开发之数据库简介、MySQL的安装与卸载(处理中文乱码)、以及MySQL语言(DDL、DML、DCL、DQL)的详解和使用
  8. Win32写一个极简定时关机软件的全部过程讲解
  9. Android 设置电话号码拦截(黑名单)
  10. android 黑名单中电话拦截