重载Python FTP_TLS 实现Implicit FTP Over TLS方式下载文件
对于Python2.7来说,内置的FTP_TLS类并不支持Implicit FTP Over TLS加密方式的FTP Server操作,为支持Implicit FTP Over TLS加密方式,必须重载内置的FTP_TLS类,具体代码如下:
import ftplib class FTP_TLS(ftplib.FTP_TLS):
def __init__(self, host='', user='', passwd='', acct='', keyfile=None, certfile=None, timeout=180):
ftplib.FTP_TLS.__init__(self, host, user, passwd, acct, keyfile, certfile, timeout)
def connect(self, host='', port=0, timeout=-999):
if host != '':
self.host = host
if port > 0:
self.port = port
if timeout != -999:
self.timeout = timeout try:
self.sock = socket.create_connection((self.host, self.port), self.timeout)
self.af = self.sock.family
self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile, ssl_version=ssl.PROTOCOL_TLSv1)
self.file = self.sock.makefile('rb')
self.welcome = self.getresp()
except Exception as e:
print e
return self.welcome
def download(self, remote_file_name, local_file_name):
with open(local_file_name, 'wb') as fp:
self.retrbinary('RETR %s' % remote_file_name, fp.write)
下载的示例代码如下所示:
host = 'XXX'
port = 2222
user = 'user'
password = 'pass'
local_dir = './data' ftp = FTP_TLS()
ftp.connect(host, port)
LOG.debug('begin to login')
ftp.login(user, password)
LOG.debug('login succeed')
LOG.debug('welcome info = %s', ftp.getwelcome())
ftp.prot_p() ftp.cwd('/crexbatch')
ftp.download('People.zip', 'People.zip')
ftp.retrlines('LIST')
fnames = ftp.nlst()
open('crexbatch.txt', 'wb').write('\r\n'.join(fnames))
重载Python FTP_TLS 实现Implicit FTP Over TLS方式下载文件的更多相关文章
- ftp上传或下载文件工具类
FtpTransferUtil.java工具类,向ftp上传或下载文件: package utils; import java.io.File; import java.io.FileOutputSt ...
- Python 实现批量从不同的Linux服务器下载文件
基于Python实现批量从不同的Linux服务器下载文件 by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/file_for_downl ...
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
- 使用批处理文件在FTP服务器 上传下载文件
1.从ftp服务器根目录文件夹下的文件到指定的文件夹下 格式:ftp -s:[配置文件] [ftp地址] 如:ftp -s:c:\vc\ftpconfig.txt 192.168.1.1 建立一个 ...
- Linux 终端访问 FTP 及 上传下载 文件
今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上.google 一下. 方 ...
- shell通过ftp实现上传/下载文件
直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...
- Linux 终端訪问 FTP 及 上传下载 文件
今天同事问我一个问题,在Linux 下訪问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...
- Linux 终端访问 FTP 及 上传下载 文件[转]
1. Linux 终端连接FTP [oracle@Dave ~]$ ftp 10.85.7.97 Connected to 10.85.7.97. 220 Serv-U FTP Server ...
- ftp上传与下载文件
准备工作 服务器已经配置好ftp服务 服务器linux centos 7.4 搭建ftp服务器:https://www.cnblogs.com/mmzs/p/10601683.html 需要用到的ja ...
随机推荐
- tabhost使用
Tabhost用法 使用方法一:使用同一个布局文件 在xml中如此定义tabhost: <RelativeLayout xmlns:android="http://schemas.an ...
- jekins 持续集成手记
1.安装一个干净Ubuntu14.04桌面版本 2.打开http://jenkins-ci.org/ 官网, 选择use jenkins 中, Installing Jenkins on Ubuntu ...
- JDBC的作用及重要接口
JDBC是由一系列连接(Connection).SQL语句(Statement)和结果集(ResultSet)构成的,其主要作用概括起来有如下3个方面: 建立与数据库的连接. 向数据库发起 ...
- [WPF]GridView或DataGrid中自定义样式:依据某一列设定其对应行的样式(背景色,字体等)
附效果照一张: 本方法使用StyleSelector来 获得依据自定义逻辑的style. ① class ConditionalStyleSelector : StyleSelector { publ ...
- 研华运动控制卡 SoftMotion 技术简介
SoftMotion为研华在设备自动化中的一项重要核心技术,相较于过去市面上ASIC 运动控制解决方案,研华自动化团队自主技术开发软件运动控制技术,并且透过现场可程序逻辑门阵列 (FPGA, Fiel ...
- Implement Trie (Prefix Tree)
Trie 树实现 Implement a trie with insert, search, and startsWith methods. class TrieNode { public: // I ...
- CNN 入门学习资料整理
建议按序阅读 1. Convolutional Neural Networks卷积神经网络: http://blog.csdn.net/zouxy09/article/details/8781543 ...
- git cherry-pick
在不同的分支上merge是有点很危险的事情,尤其当两个分支内容差异较大的时候,而恰好,你想合并的就是几次commit而已,那么用cherry-pick吧. 将B分支的提交合并到A分支: git che ...
- 第七章:LED将为我闪烁:控制发光二极管
在之前章节了解到Linux驱动程序可以控制软硬件,可以实现软硬件之间的交互.在这章我们学习LED驱动的实现原理.Linux内核提供了多个与I/O内存交互的函数可以实现控制硬件. 编写LE ...
- 汇编语言进阶和Makefile进阶---第二天
摘要: 原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 首先加载启动代码: ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序装载地 ...