专栏首页我的博客Python上传文件到FTP服务器

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 条评论
登录 后参与评论

相关文章

  • MySQL datetime时间误差8个小时

    数据库设计为datetime类型,如果自动获取的时间有误差8个小时的可以在mysql的配置文件[msyqld],切记在这个段下面配置 default-time...

    苦咖啡
  • Laya发布模式区分

    将UI界面上所有组件的属性、界面布局等逻辑与界面内容分离开,分离模式也是导出为json格式,但有所区别的是分离模式会将每一个页面独立导出,会产生多个j...

    苦咖啡
  • Ubuntu安装redmine

    1.环境已经安装LAMP环境(http://www.0377joyous.com/archives/87.html) 2.安装redmine 第一步: a...

    苦咖啡
  • Linux ftp服务器(3):匿名登录

    实名登录有弊端,除了需要知道密码外,登录后可以任意目录切换,可以看到服务器里的很多内容,存在安全隐患。 ftp +服务器IP 用户名:anonymous ...

    Y大宽
  • Attention!神经网络中的注意机制到底是什么?

    原作:Adam Kosiorek 安妮 编译自 GitHub 量子位 出品 | 公众号 QbitAI 神经网络的注意机制(Attention Mechanism...

    量子位
  • Django Rest Framework-介绍

    程序员同行者
  • Django进阶篇 Rest framework (三)

    路径又称“终点”(endpoint),表示 API 的具体网站,网络上任何东西都是资源,均使用名词表示(可复数),在 RESTful 架构中,每个网址代表一种资...

    小团子
  • 快速学习-基于注解的 IOC 配置

    学习基于注解的 IoC 配置,大家脑海里首先得有一个认知,即注解配置和 xml 配置要实现的功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样。

    cwl_java
  • 全局作用域、函数作用域、块级作用域的理解

    ES6中新增的概念,在ES5中是没有的,ES5中没有? 没有的时候我们代码也写的好好的,现在新增的概念,我不用不行吗? 来,拋一个典型的问题出来,你就明白块级作...

    yuezhongbao
  • ES6--变量的声明及解构赋值

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    奋飛

扫码关注云+社区

领取腾讯云代金券