python 实现ftp上传下载文件

Python的ftplib包提供了ftp文件上传、下载等功能,使用ftplib包能够很容易的开发ftp相关的功能。

python版本:3.4.8

1. python ftp上传下载文件源码

# coding:utf8
from ftplib import FTP

def upload(f, remote_path, local_path):
    fp = open(local_path, "rb")
    buf_size = 1024
    f.storbinary("STOR {}".format(remote_path), fp, buf_size)
    fp.close()

def download(f, remote_path, local_path):
    fp = open(local_path, "wb")
    buf_size = 1024
    f.retrbinary('RETR {}'.format(remote_path), fp.write, buf_size)
    fp.close()

if __name__ == "__main__":
    ftp = FTP()
    ftp.connect("127.0.0.1", 21)
    ftp.login("ftp_user", "ftp_password") 
    ftp.cwd("/tmp")
    upload(ftp, "ftp_a.txt", "/tmp/a.txt")
    download(ftp, "ftp_a.txt", "/tmp/b.txt")
    ftp.quit()
  • ftp.connect("127.0.0.1", 21),第一个参数可以是ftp服务器的ip或者域名,第二个参数为ftp服务器的连接端口,默认为21
  • ftp.login("ftp_user", "ftp_password"),第一个参数为ftp用户名,第二个参数为ftp登录密码,如果匿名登录,直接使用ftp.login()
  • ftp.cwd("/tmp"),切换到tmp目录,/tmp目录是ftp里面的目录,不是本地目录
  • upload(ftp, "ftp_a.txt", "/tmp/a.txt"),将本地/tmp/a.txt文件上传到ftp服务器的/tmp目录,命名为ftp_a.txt
  • download(ftp, "ftp_a.txt", "/tmp/b.txt"),将ftp服务器/tmp目录下的ftp_a.txt文件下载到本地目录/tmp,命名为b.txt

2. FTP对象的其他常用方法

  • ftp.dir(),显示目录下所有信息
  • ftp.nlst(),获取目录下的文件,显示的是文件名列表
  • ftp.mkd(directory),新建远程目录
  • ftp.rmd(directory),删除远程目录
  • ftp.rename(old, new),将远程文件old重命名为new
  • ftp.delete(file_name),删除远程文件

文章评论

0条评论