Python实现的FTP上传和下载功能

一、ftplib介绍

Python中默认安装的ftplib模块定义了FTP类,可用来实现简单的ftp客户端,用于上传或下载文件。

Python 2.7系列官方文档: https://docs.python.org/2/library/ftplib.html
Python 3.5系列官方文档:https://docs.python.org/3.5/library/ftplib.html
Python 3.6系列官方文档:https://docs.python.org/3.6/library/ftplib.html

1、连接服务器:

ftp=FTP() #设置变量

ftp.connect(“IP”,”port”) #连接的ftp sever和端口

ftp.login(“user”,”password”)#连接的用户名,密码如果匿名登录则用空串代替即可

2、上传文件:

fp=open(‘E:/test.xlsx’,’rb’)

cmd=’STOR filepath/test.xlsx’

ftp.storbinary(cmd, fp)

storbinary是以二进制形式上传文件。
cmd: STOR命令,是FTP的一个命令,后面需要加上保存文件的路径及文件名
fp: 一个打开的文件对象,‘rb’,以二进制形式打开文件

3、下载文件:

ftp.nlst(path) #获取目录下的文件

file_handle=open(filename,”wb”).write #以写模式在本地打开文件

ftp.retrbinaly(“RETR filename.txt”,file_handle) #接收服务器上文件并写入本地文件

4、其他方法:

ftp.set_debuglevel(2) #打开调试级别2,显示详细信息

ftp.set_pasv(0) #0主动模式 1 #被动模式

print ftp.getwelcome() #打印出欢迎信息

ftp.cmd(“xxx/xxx”) #更改远程目录

ftp.set_debuglevel(0) #关闭调试模式

ftp.quit() #退出ftp

ftp.dir() #显示目录下文件信息

ftp.mkd(pathname) #新建远程目录

ftp.pwd() #返回当前所在位置

ftp.rmd(dirname) #删除远程目录

ftp.delete(filename) #删除远程文件

ftp.rename(fromname, toname) #将fromname修改名称为toname

二、使用ftplib来实现FTP上传下载功能

#!/usr/bin/python
# -*- coding: UTF-8 -*-


from ftplib import FTP
import os
import sys
import time
import socket


class MyFTP:
    """
        ftp自动下载、自动上传脚本,可以递归目录操作
        作者:欧阳鹏
        博客地址:http://blog.csdn.net/ouyang_peng/article/details/79271113
    """

    def __init__(self, host, port=21):
        """ 初始化 FTP 客户端
        参数:
                 host:ip地址

                 port:端口号
        """
        # print("__init__()---> host = %s ,port = %s" % (host, port))

        self.host = host
        self.port = port
        self.ftp = FTP()
        # 重新设置下编码方式
        self.ftp.encoding = 'gbk'
        self.log_file = open("log.txt", "a")
        self.file_list = []

    def login(self, username
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值