1. 连接FTP server

import ftplib
ftp = ftplib.FTP(ftpserver, user, passwd)

等同于

import ftplib
ftp = ftplib.FTP()
ftp.connect(ftpserver)
ftp.login(user,passwd)

对于初始化函数FTP(),如果指定host,则自动调用connect函数,如果指定了user和passwd,则自动调用login,如果都没指定,就什么都不做,需要显示调用。

2. upload

import ftplib

def uploadToFTP(filename, targetdir, ftpserver, user="user", passwd=""):
rtd = 0
targetdir = targetdir.split(ftpserver)[-1] # remove ftpserver string from targetdir string if contain
fp = open(filename, 'rb')
ftp = ftplib.FTP(ftpserver, user, passwd) # make connection and login FTP
try:
ftp.cwd(targetdir)
except ftplib.error_perm:
print "Error: cannot upload to FTP, no such folder"
return -2
try:
ftp.storbinary('STOR %s/%s'%(targetdir,filename), fp)
except Exception, e:
traceback.print_exc()
rtd = 1
finally:
fp.close()
ftp.quit()
return rtd

3. 下载

# ftp.retrbinary(cmd, callback, blocksize=8192, rest=None)

def downloadfile()
remotepath = "/home/pub/dog.jpg";
localpath = 'f:\\test\\dog.jpg'
fp = open(localpath,'wb') #以写模式在本地打开文件 ftp.retrbinary('RETR ' + remotepath,fp.write,bufsize) #接收服务器上文件并写入本地文件 ftp.set_debuglevel(0) #关闭调试
fp.close()
ftp.quit() #退出ftp服务器

官方文档:

https://docs.python.org/3/library/ftplib.html#ftplib.FTP.transfercmd

python FTP上传和下载文件的更多相关文章

  1. ftp上传或下载文件工具类

    FtpTransferUtil.java工具类,向ftp上传或下载文件: package utils; import java.io.File; import java.io.FileOutputSt ...

  2. FTP上传和下载文件的应用

    FTP(File Transfer Protocol)协议主要用来在网络上进行文件传输.FTP通讯除了有一个默认的端口21外,还有其他端口,同城两个端口同时进行数据传输.一个是默认的端口(通常为21) ...

  3. Java 利用FTP上传,下载文件,遍历文件目录

    Java实现FTP上传下载文件的工具包有很多,这里我采用Java自带的API,实现FTP上传下载文件.另外JDK1.7以前的版本与其之后版本的API有了较大的改变了. 例如: JDK1.7之前 JDK ...

  4. 使用脚本在FTP上传、下载文件

    由于最近勒索病毒变种又一次爆发,公司内部封锁了TCP 445端口.导致原来通过文件共享的方式上传下载的计划任务无法执行.所以,我开设了FTP服务器来完成这个工作. 关于如何建立FTP服务器,请看这里 ...

  5. ftp上传与下载文件

    准备工作 服务器已经配置好ftp服务 服务器linux centos 7.4 搭建ftp服务器:https://www.cnblogs.com/mmzs/p/10601683.html 需要用到的ja ...

  6. Python——FTP上传和下载

    一.FTP对象方法说明 login(user='anonymous',passwd='', acct='') 登录 FTP 服务器,所有参数都是可选的 pwd() 获得当前工作目录 cwd(path) ...

  7. FTP上传、下载文件Demo

    前言:最近在做一个app,负责写后台接口,客户那边给了一个FTP的账号密码过来,服务器上面放了一堆的PDF文件,让我们这边自己从上面拿,项目是spriongboot的,做个记录供以后参考. 一.app ...

  8. 结合阿里云服务器,使用FTP上传和下载文件,出现的问题和解决方案

    一.FTP出现的问题 二.在网上找的方案 如果使用FileZilla默认设置连接ftp服务器的话可能会报以下错误: 错误: 无法建立数据连接:ECONNREFUSED - Connection ref ...

  9. C# FTP上传与下载文件

    public class UploadFile { string ftpServerIP; string ftpRemotePath; string ftpUserID; string ftpPass ...

随机推荐

  1. 条款7:为多态基类声明virtual析构函数

    C++明确指出:当派生类对象是由一个基类指针释放的,而基类中的析构函数不是虚函数,那么结果是未定义的.其实我们执行时其结果就是:只调用最上层基类的析构函数,派生类及其中间基类的析构函数得不到调用. # ...

  2. C#全局作用符::

    比如说你在全局定义了一个变量str,然后在函数里面又定义了这个str名字的变量的,这个时候你要是在函数里面直接写str,那么就是访问的函数内部的变量的.无法访问外部变量的.这是正常的现象的.但是如果你 ...

  3. EF6 在原有数据库中使用 CodeFirst 总复习(四、新建实体对象)

    在原有数据库中使用 CodeFirst ,除了第一次添加实体后要立即执行一次 Enable-Migrations add-migration Initial  -IgnoreChanges updat ...

  4. 慎把“DataContext”静态化 或则单例

    之前在项目里由于把DataContext静态化,最后在测试阶段发现了很多奇怪的问题,后来经过同事的指点 然后上网搜了一翻终于发现 MSDN上说:   "请不要试图重用 DataContext ...

  5. Microsoft Dynamics CRM 2013 安装过程图解及安装序列号

    Microsoft Dynamics CRM 2013 安装过程 图解   在安装前,先持一下SQL配置管理,将相关的服务打开.(由于在虚拟机里,许多服务需要时才会打开,像Reporting Serv ...

  6. 四则运算之C++版

    一.设计思想 之前的版本是用Java语言实现的,在这次的练习中,我用C++语言将其功能逐一实现,其实C++与Java有很多相似之处,只是一些书写格式不同,思路还是一样的. 二.源代码 #include ...

  7. 一、javaSE总结

    1.变量与常量区别: 常量:是在程序中的不会变化的数据. 变量:其实就是内存中的一个存储空间,用于储存常量数据 ,方便运算,因为有些数据不确定,变量空间可以重复使用. 2.变量空间的开辟条件:数据类型 ...

  8. Netsharp快速入门(之6) 基础档案(创建导航菜单)

    作者:秋时 杨昶   时间:2014-02-15  转载须说明出处 1.1     创建导航菜单 1.在Demo节点下,录入路径名称,并在下方录入两个导航页签名 2.建立分类,只要填路径名 3.双击基 ...

  9. selenium--嵌套frame定位

    网页源码: 案例1 :iframe有id.name属性 网页上有3个frame:header.menu.main,分别代码顶部.左侧.右侧(其中menu.main在另外一个frameset中) 如何定 ...

  10. 设计模式之装饰模式(Decorator)

    装饰模式原理:给对象增加特性,这种特性是一种累加的效果 代码如下 #include <iostream> #include <string> #include <list ...