python上传本地文件到ftp_Python实现FTP上传本地文件和目录

这篇博客介绍了如何使用Python的ftplib模块实现FTP上传本地文件和目录,包括递归上传子目录的功能。文中提供了详细的FTP操作函数,如设置目录、列出文件、上传文件等,并展示了实际的上传代码示例。
摘要由CSDN通过智能技术生成

最近在做一个稽核任务,需要FTP登录服务器下载文件到本地和上传文件到服务器,参考了不少例子,功能都太单一,很少能直接拿来使用,于是自己写了一个。FTP下载文件到本地请参考前一篇Python实现FTP下载远端文件和目录

一 . 几个模块

from ftplib import FTP

ftp = FTP() #设置变量

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

ftp.connect("IP", "port") #连接ftp, IP和端口

ftp.log("user", "password") #连接的用户名、密码

ftp.cwd(pathname) #设置FTP当前操作的路径

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

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

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

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

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

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

ftp.rename(from_name, to_name) #修改文件名

ftp.storbinaly("STOR filename.txt", file_handel, bufsize) # 上传目标文件

ftp.retrbinaly("RETR filename.txt", file_handel, bufsize) # 上传FTP文件

ftp.size(filename) # 返回服务器中的文件大小

二. 功能实现:

1. 上传整个目录包括子目录

def upload_file_tree(local_path, remote_path, ftp, IsRecursively):

核心函数

入参:local_path:本地目录,可以是当前路径

remote_path: 远端目录 ,必须是服务器上存在的且有权限访问的目录

ftp: FTP() 创建的类对象

IsRecursively:是否递归即是否下载所有文件包含子目录 True或者False

2. 指定文件名上传

def upload_file(local_file, remote_file, ftp):

核心函数

入参:local_file本地目录,可以是当前路径

remote_file: 远端目录 ,必须是服务器上存在的且有权限访问的目录

ftp: FTP() 创建的类对象

3. 简单的检查函数

def is_same_size(ftp, local_file, remote_file):

入参:local_file:下载完成后本地存在此文件

remote_file: 远端文件名, 传入远端文件名即可

ftp:FTP() 创建的类对象

注意ftp切换目录时,递归上传目录后需要返回上一层

代码如下,只需修改if __name__ == '__main__':   内的目录和文件名即可 是否递归上传源目录下的子目录通过IsRecursively 控制

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

#import unittest # 单元测试用例

import

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值