python post传输文件脚本

ps:背景,无法ssh相互访问机器(一般中间有堡垒机阻拦)的情况下,但是使用域名可以进行访问的情况下 可以使用http协议进行文件的上传。

服务器端代码(接受post的一端)

#coding=utf-8
from BaseHTTPServer import BaseHTTPRequestHandler
import cgi
class   PostHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        form = cgi.FieldStorage(
            fp=self.rfile,
            headers=self.headers,
            environ={‘REQUEST_METHOD‘:‘POST‘,
            ‘CONTENT_TYPE‘:self.headers[‘Content-Type‘],
                }       
            )       
        self.send_response(200)
        self.end_headers()
        self.wfile.write(‘Client: %sn ‘ % str(self.client_address) )
        self.wfile.write(‘User-agent: %sn‘ % str(self.headers[‘user-agent‘]))
        self.wfile.write(‘Path: %sn‘%self.path)
        self.wfile.write(‘Form data:n‘)
        for field in form.keys():
            field_item = form[field]
            filename = field_item.filename
            filevalue  = field_item.value
            filesize = len(filevalue)#文件大小(字节)
            print len(filevalue)
            with open(filename.decode(‘utf-8‘)+‘a‘,‘wb‘) as f:
                f.write(filevalue)
        return  

if __name__==‘__main__‘:
    from BaseHTTPServer import HTTPServer
    sever = HTTPServer((‘0.0.0.0‘,8000),PostHandler)
    print ‘Starting server, use <Ctrl-C> to stop‘
    sever.serve_forever()

客户端 (发送post的一端)

#coding=utf-8
import requests
url = ‘http://xxxxxxxxxxxxxxxxxxx:8000‘
path = u‘/Users/test/student/py/myspider.py‘
print path
files = {‘file‘: open(path, ‘rb‘)}
r = requests.post(url, files=files)
时间: 2024-11-09 01:04:32

python post传输文件脚本的相关文章

初试python多线程传输文件

新手!!求见谅!!望多指点 由于工作原因,试用期需要学习python,因为运维工作全都是由python完成,幸好有点python基础,知道什么是列表,元组,字符,字典什么的,要不然死翘翘的. 创建多线程主要的步骤有: 1.创建一个函数,这个函数是多线程需要多次运行的内容 2.利用for循环生成对应函数的多个成品(就是说这个函数已经赋予了需要的参数了,直接运行就可以的了) 3.利用for循环开始执行函数 4.利用for循环使主程序挂起,等待子进程完成后再执行其他动作 ---------------

python逐行读取文件脚本

逐行读取的方法很多,这里提供一种非常简单的方法: #!/usr/bin/python # -*- coding: utf-8 -*- for line in open("awip.conf"): print line 其他的可以参考教程:python逐行读取文件内容的三种方法Python--文件读取 原文地址:http://blog.51cto.com/weiruoyu/2140927

python实时处理log文件脚本

这个Python脚本是用来对实时文件的内容监控,比如 Error 或者 time out 字段都可以进行自定义:算是我的第一个真正的Python脚本,自己感觉还是比较臃肿,不过打算放到blog上记录一下(还是初学者,大神们勿喷哈),真心希望博友们能够再指点一下(现在记录每次的文件大小值是输出到了一个文件中,并且里面还嵌套了有shell命令,这些我认为都是可以优化掉的吧,只是现在我还不知道怎么做):告警是基于zabbix,自定义的模板是120s执行一次 #!/usr/local/bin/pytho

python批量修改文件脚本

最近准备把<ThingingInJava>敲一遍(人比较笨,只能用这种简单粗暴的方法了,哈哈) 必须要把net.mindview包导入 导入过程参考这篇博客:http://blog.sina.com.cn/s/blog_631a75580100vcig.html 中间由于要把所有文件中的com.mindview删掉 就写了一个简陋的python脚本,批量删除 由于这是第一次为了自己方便写脚本(这可能也是脚本的意义),纪念一下 下面是代码: import re import os def han

Python Socket传输文件

发送端可以不停的发送新文件,接收端可以不停的接收新文件. 例如:发送端输入:e:\visio.rar,接收端会默认保存为 e:\new_visio.rar,支持多并发,具体实现如下: 接收端: 方法一: #-*- coding: UTF-8 -*- import socket,time,SocketServer,struct,os,thread host='192.168.50.74' port=12307 s=socket.socket(socket.AF_INET,socket.SOCK_S

Python开发搜索文件脚本

#!/usr/bin/env python #coding:utf-8 import os, sys #判断位置参数 argv_num = len(sys.argv) if argv_num != 3: print ("请至少输入2位参数:") print ("########################################") print ("EXample: python %s \033[1;31mfilename file_path\

Python 的网络传输文件功能的设计与实现

摘要:Python 是目前较流行的程序设计语言之一,它具有简单易学代码简洁等特点,并且Python 提供了大量的功能库文件,开发大型应用程序时非常方便,广泛用于网站开发.游戏后台开发等方面.该文基Python 提供的网络编程库,开发了网络文件传输的功能,该功能可以快速有效地在互联网上进行文件的传输.1 Python 介绍Python是由Guido van Rossum在1989年底创造的,在1991年发行了第一个公开版本.Python是一种面向对象的.解释型的.动态数据类型的程序设计语言.Pyt

Python实现Windows和Linux之间互相传输文件(文件夹)的方法

项目中需要从Windows系统传输ISO文件到Linux测试系统,然后再Linux测试系统里安装这个ISO文件.所以就需要实现如何把文件从Windows系统传输到Linux系统中. 在项目中使用了pscp.exe这个工具,只要按照pscp.exe的使用说明操作即可.只要进入pscp.exe的安装位置,然后输入pscp即可查看pscp的使用说明. 下面是我机器上的: 使用Python实现也挺简单的,下面的code主要介绍4中情况: 1. windows传输文件到Linux 2. windows传输

python压缩文件脚本

zf.py文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 """ desc:读取配置文件config.ini压缩sourcepath路径到targetpath      并可以排除不需要压缩的文件excludefile time:2014/4/30 12:03:42 author:ggh """ import zipf