Python上传文件到FTP服务器

代码python2.7下测试通过!写在最前面!

# -*- coding: UTF-8 -*-
from ftplib import FTP
import os
import os.path
#上传文件到FTP服务器
def ftp_upload(filename, save_filename):
    ftp = FTP()
    ftp.set_debuglevel(0)                   # 打开调试级别2,显示详细信息;0为关闭调试信息
    ftp.connect('blog.phpfs.com', '21', 60)  # FTP主机 端口 超时时间
    ftp.login('python', 'python')           # 登录,如果匿名登录则用空串代替即可

    remote_dir = save_filename.split("/")
    newfilename = remote_dir.pop()

    if remote_dir :
        for dir_name in remote_dir :
            if dir_name == '.' or dir_name == '' :
                continue
            else :
                #尝试创建目录
                try:
                    ftp.mkd(dir_name)
                    ftp.cwd(dir_name)
                except:
                    ftp.cwd(dir_name)
    target_path = '/'.join(remote_dir)
    print '保存文件名:', newfilename
    print '上传目录:', target_path
    print '当前目录:', ftp.pwd()
    print '待上传文件名: %s' % os.path.basename(filename)
    bufsize = 1024                       # 设置缓冲块大小
    file_handler = open(filename, 'rb')  # 以读模式在本地打开文件
    ftp.storbinary('STOR %s' % newfilename, file_handler, bufsize)
    ftp.set_debuglevel(0)
    file_handler.close()
    ftp.quit()
    print "本地文件 ", filename, " 成功上传至 ", save_filename

#举个栗子
ftp_upload('D:/python/test/ex1/7.jpg', '/123.jpg')  #上传文件到根目录下
ftp_upload('D:/python/test/ex1/7.jpg', 'test/123/456/123.jpg');

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏极客教程

mac系统下安装、启动、停止mongodb

MongoDB 下载地址: https://www.mongodb.com/download-center?jmp=nav#community

4509
来自专栏北京马哥教育

243张图片为你解析Linux轻量级自动运维化工具Ansible

基于Python语言研发,由Paramiko, PyYAML和Jinja2三个核心库实现;

1992
来自专栏androidBlog

Git 命令行教程及实例教程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

1161
来自专栏Java技术分享

【项目管理和构建】——Maven下载、安装和配置(二)

前言 在上篇博文【项目管理和构建】——Maven简介(一)中我们了解到maven是一种全新的项目构建方式,让我们的开发更加简单,高效。Maven主要做的是两件事...

2399
来自专栏SpringBoot 核心技术

SpringBoot核心技术:你了解Actuator开放指定监控节点吗?

之前章节SpringBoot核心技术:探究Actuator的默认开放节点 & 详细健康状态讲解了spring-boot-actuator默认开放的节点以及如何修...

1632
来自专栏小樱的经验随笔

mount命令详解及常见问题汇总

一 、mount命令(用来挂载硬盘或镜像等) 用法:mount [-t vfstype] [-o options] device dir 1、-t vfstyp...

7835
来自专栏建站达人秀

如何搭建 Django 网站

Django是一个非常受欢迎的全功能服务器端Python Web框架,可以快速开发安全和可维护的网站。由经验丰富的开发人员构建。Django负责处理Web开发大...

7515
来自专栏有趣的Python

5- 快速上手Linux玩转典型应用- Linux常用命令

752
来自专栏Python研发

django-celery定时任务以及异步任务and服务器部署并且运行全部过程

应用Celery之前,我想大家都已经了解了,什么是Celery,Celery可以做什么,等等一些关于Celery的问题,在这里我就不一一解释了。

7462
来自专栏SpringBoot 核心技术

第八章:使用拦截器记录你的SpringBoot的请求日志本章目标构建项目配置拦截器初尝试运行项目总结

2952

扫码关注云+社区

领取腾讯云代金券