python之实现从ftp下载文件到本地

#!/usr/bin/python
# coding=utf-8
import os
from ftplib import FTP  # 引入ftp模块class MyFtp:ftp = FTP()def __init__(self,host,port=21):self.ftp.connect(host,port)def login(self,username,pwd):self.ftp.set_debuglevel(2)  # 打开调试级别2,显示详细信息
        self.ftp.login(username,pwd)print(self.ftp.welcome)def downloadFile(self,localpath,remotepath,filename):os.chdir(localpath)   # 切换工作路径到下载目录self.ftp.cwd( remotepath)   # 要登录的ftp目录self.ftp.nlst()  # 获取目录下的文件file_handle = open(filename,"wb").write   # 以写模式在本地打开文件self.ftp.retrbinary('RETR %s' % os.path.basename(filename),file_handle,blocksize=1024)  # 下载ftp文件# ftp.delete(filename)  # 删除ftp服务器上的文件def close(self):self.ftp.set_debuglevel(0)  # 关闭调试
        self.ftp.quit()if __name__ == '__main__':ftp = MyFtp('host')ftp.login('username','pwd')ftp.downloadFile('E:\\RED\\workspace\\appAuto\\apk\\Android10','/mobile/Android/release10/','xxx.apk')ftp.close()

实现得比较简单,后续用得复杂一点的话再优化。 

转载于:https://www.cnblogs.com/Dahlia/p/10551929.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Instagram上过滤冒犯性评论

Shubham AgarwalShubham AgarwalIf you have a public Instagram profile, chances are you’ve been a victim of inappropriate comments from strangers. Given the social network’s vast size, it’s practically impossible to escape such bad actors. Thankfully, Ins…

复杂性思维中文第二版 附录 A、算法分析

附录 A、算法分析 原文:Appendix A Analysis of algorithms 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《Think Python 2e 中译本 第二十一章:算法分析》 算法分析 (Analysis of algorithms) 是计算机科学的一…

如何在Windows 8.1中获取Windows 10样式的开始菜单

On January 21, Microsoft officially announced the new features that would be included in Windows 10. While you’ll have to wait for the release to enjoy most of the new features, you can take advantage of the new Windows 10 Start menu today. 1月21日&#x…

Android工程中javax annotation Nullable找不到的替代方案

我们在某些Android开源库中会遇到下面的引用找不到的问题:import javax.annotation.Nonnull;import javax.annotation.Nullable; 其实Android实现了javax的类似注解,可以使用下面的引用替换:import android.support.annotation.NonNull;impor…

HDU1561:The more, The Better——题解

http://acm.hdu.edu.cn/showproblem.php?pid1561 ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物。但由于地理位置原因,有些城堡不能直…

ubuntu列出所有磁盘_列出Ubuntu上的磁盘空间使用情况

ubuntu列出所有磁盘Simply open a new Terminal window and type in this command 只需打开一个新的终端窗口并输入此命令 df -Th f翻译自: https://www.howtogeek.com/howto/ubuntu/list-disk-space-usage-on-ubuntu/ubuntu列出所有磁盘

python基础之字符编码

阅读目录 一 了解字符编码的知识储备二 字符编码介绍三 字符编码应用之文件编辑器3.1 文本编辑器之nodpad3.2 文本编辑器之pycharm3.3 文本编辑器之python解释器3.4 总结四 字符编码应用之python4.1 执行python程序的三个阶段4.2 python2与python3字符串类型的区别一 了解字符编…

C# WinForm开发系列 - DataGridView

1.DataGridView实现课程表 testcontrol.rar 2.DataGridView二维表头及单元格合并 DataGridView单元格合并和二维表头.rar myMultiColHeaderDgv.rar 3.DataGridView单元格显示GIF图片 gifanimationindatagrid.rar 4.自定义显示DataGridView列(行头显示行号与图标,同一单元格显示…

ruby语法_Ruby函数(方法)语法

ruby语法The Ruby language makes it easy to create functions. Ruby语言使创建函数变得容易。 Function Syntax 功能语法 def functionname(variable) return <value>end def functionname(variable)return <值>结束Examples 例子 Your function can compute …

011-git-将tag推送到远端

1、将tag推送到远端 在使用TortoiseGit过程中&#xff0c;push推送过程中&#xff0c;选择include tag&#xff0c;远端就有次分支。

pageadmin CMS网站建设教程:站点添加自定义字段

首先看看pagedmin默认的站点设置都有什么&#xff0c;如下图&#xff1a; 这里只有一些最基本的参数设置&#xff0c;用过3.0版本或用过其他公司开发的cms的用户应该有这种体验&#xff0c;在站点设置中可以设置logo图片&#xff0c;备案号&#xff0c;底部内容等等。 那么为什…

如何将世界时钟和时区小部件添加到您的iPhone

When you work remotely or have friends and family who live in another country, it’s important to know what time it is across time zones. A world clock (or time zone) widget on your iPhone’s Home screen makes this much easier. 当您远程工作或有家人和朋友居…

Python网络爬虫之三种数据解析方式

引入 回顾requests实现数据爬取的流程 指定url基于requests模块发起请求获取响应对象中的数据进行持久化存储其实&#xff0c;在上述流程中还需要较为重要的一步&#xff0c;就是在持久化存储之前需要进行指定数据解析。因为大多数情况下的需求&#xff0c;我们都会指定去使用聚…

一行代码实现底部导航栏TabLayout

欢迎关注公众号&#xff1a;JueCode app中底部导航栏已经是很常见的控件了&#xff0c;比如微信&#xff0c;简书&#xff0c;QQ等都有这类控件&#xff0c;都是点击底部标签切换界面。主要的实现手段有 RadioGroupFragmentTabLayoutTabLayoutBottom Navigation其中TabLayout一…

小程序视频截gif_3个简单的应用程序,可让您深入视频和GIF

小程序视频截gifDeepfakes make it possible to manipulate videos and GIFs. The technology has become so easy to use, you can now create deepfakes right on your phone. That’s right—you can now easily insert yourself into a meme. 借助Deepfake &#xff0c;可以…

【AtCoder】ARC095 E - Symmetric Grid 模拟

【题目】E - Symmetric Grid 【题意】给定n*m的小写字母矩阵&#xff0c;求是否能通过若干行互换和列互换使得矩阵中心对称。n,m<12。 【算法】模拟 【题解】首先行列操作独立&#xff0c;如果已确定行操作&#xff0c;那么两个在对称位置的列要满足条件必须其中一列反转后和…

一、内存寻址

1.内存地址分类: 逻辑地址、线性地址、物理地址 逻辑地址:段选择符偏移量 线性地址:C语言中取地址符&打印出来的地址就是这个地址&#xff0c;也叫虚拟地址。 物理地址:内存总线寻址的具体地址&#xff0c;是真实存在的。 逻辑地址通过分段单元转换成线性地址&#xff0c;线…

如何使用Google TV设置Chromecast

Justin Duino贾斯汀杜伊诺(Justin Duino)Google changed up its streaming platform with the release of the Chromecast with Google TV. Instead of being a Cast-only device like Chromecasts before it, Google’s latest dongle runs the successor of Android TV. If y…

js之 foreach, map, every, some

js中array有四个方法 foreach, map, every, some&#xff0c;其使用各有倾向。 关注点一&#xff1a;foreach 和 map 无法跳出循环&#xff0c;每个元素均执行foreach 和 map 无法跳出循环&#xff0c;他们是对每个数组元素调用 callback&#xff1b; foreach 无返回值&#xf…

scala 方法、函数定义小结

2019独角兽企业重金招聘Python工程师标准>>> package scalapackage.testmethod/*** Created by Germmy on 2018/4/15.*/ object TesMethod {def main(args: Array[String]) {//定义方法的一种方法,高阶函数的一种定义方法def m1(x:Int)(y:Int)x*yval resm1(3)(4)pri…