一.简介

用python实现文件自动上传,主要源于在测试项目中想实现自动化上传文件功能,无须手工输入。比如从windows到Linux,或从Linux到windows,或从Linux到Linux。

主要实现方法是封装命令,但其中也收获了很多技巧,故记录下来,方便后续查阅。

二.内容

1.windows<->Linux

从windows 到Linux之间的传输比较简单,主要是用python实现对pscp 命令的封装。

可参考http://www.jb51.net/article/113165.htm

2.Linux<->Linux

a. linux服务器之间传输文件的几种方式

共四种scp、rcp、wget、rsync(http://blog.csdn.net/zhiyuan411/article/details/8166409)

rsync功能强大,操作类似scp,支持排除目录,支持限速参数;还支持本地复制。故最终选择用python对rsync命令进行封装。

b.rsync 免密码登录

rsync是远程文件同步协议,在linux系统下,操作服务器之间的文件同步,是非常方便高效的。

但是,简单的rsync操作,往往需要和用户交互,需要用户输入密码,这个对于结合应用系统使用,比如Java调用linux指令实现同步的话,就不是很方便。

免密码方法一:

免密码操作的一种方式是rsync+ssh,利用ssh的安全校验机制来传输文件,然后将ssh设置为免密码登录。

要实现rsync的无密码传输,基本思路是用一对公私钥来代替帐户密码,实现ssh连接时的认证

配置:http://blog.csdn.net/fuguoq1984/article/details/32331941

免密码方法二:

在python中使用pexpect自动输入密码,https://www.cnblogs.com/MikeZhang/p/rsyncExample_20160818.html

用python实现文件自动上传的更多相关文章

  1. Python读写文件

    Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...

  2. python计算文件的md5值

    前言 最近要开发一个基于python的合并文件夹/目录的程序,本来的想法是基于修改时间的比较,即判断文件有没有改变,比较两个文件的修改时间即可.这个想法在windows的pc端下测试没有问题. 但是当 ...

  3. python操作文件案例二则

    前言 python 对于文件及文件夹的操作. 涉及到 遍历文件夹下所有文件 ,文件的读写和操作 等等. 代码一 作用:查找文件夹下(包括子文件夹)下所有文件的名字,找出 名字中含有中文或者空格的文件 ...

  4. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  5. python学习 文件操作

    一.python打开文件 #=====================python 文件打开方式 open()===================== # open(fileName,type) t ...

  6. Python之文件读写

    本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input ...

  7. python 遍历文件夹 文件

    python 遍历文件夹 文件   import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹 for parent,dirn ...

  8. python检测文件的MD5值

    python检测文件的MD5值MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权 ...

  9. Python编码/文件读取/多线程

    Python编码/文件读取/多线程 个人笔记~~记录才有成长   编码/文件读取/多线程 编码 常用的一般是gbk.utf-8,而在python中字符串一般是用Unicode来操作,这样才能按照单个字 ...

随机推荐

  1. DIV+CSS详解

    DIV+CSS详解 ✪DIV+CSS"这种叫法其实是一种不准确的叫法 在做笔记的最前面必须先给大家纠正一个错误,就是"DIV+CSS"这种叫法其实是一种不准确的叫法,是国 ...

  2. java8--List转为Map、分组、过滤、求和等操作----代码示例

    Java 8 函数式编程风格 Java 迄今为止最令人激动的特征.这些新的语言特征允许采用函数式风格来进行编码,我们可以用这些特性完成许多有趣的功能.这些特性如此有趣以至于被认为是不合理的.他们说会影 ...

  3. Mapnik 3.0.20编译安装

    1. 确定epel安装 yum install -y epel-release 2. 按照<CentOS7.2部署node-mapnik>一文中的步骤,手动安装 gcc-6.2.0 和 b ...

  4. oracle sql语句大全

    ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约 ...

  5. 201621123002《java程序设计》第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 //功能需求:将所有大于5的生成一个新的List对象 List lis ...

  6. RequestMethod.Post&RequestMethod.GET

    1.GET和POST都是将数据送到服务器 2.GET通过URL请求传递用户的数据,将表单各字段名称以及内容,以成对的字符串连接,置于action所指程序的URL后:POST方法通过HTTP post ...

  7. 《Java核心技术卷1》拾遗

    之前对Java的基础知识有过学习,现在开始学习<Java核心技术卷1>,将一些新学的知识点,做简要记录,以备后续回顾: 1.double (1)所有的“非数值”都认为是不相同的 if(x= ...

  8. H5新特性--WebStorage--WebSocke

    今天的目标 3.2:h5新特性--WebStorage localStorage  在客户端浏览器保存数据 永久保存 保存数据 localStorage [key] = value 保存数据 loca ...

  9. 操作系统组成和工作原理以及cpu的工作原理

  10. 通过TABULATE过程制作汇总报表

    通过TABULATE过程制作汇总报表 制作基本汇总报表 TABULATE过程的基本语法如下: PROC TABULATE DATA=数据集 <选项>; CLASS 变量1 <变量2变 ...