使用python ftplib 递归删除FTP文件夹内的所有内容

FTPlib

This module defines the class FTP and a few related items. The FTP class implements the client side of the FTP protocol. You can use this to write Python programs that perform a variety of automated FTP jobs, such as mirroring other FTP servers. It is also used by the module urllib.request to handle URLs that use FTP. For more information on FTP (File Transfer Protocol), see Internet RFC 959.

  • ftplib是python中自带的默认库
  • 可以使用它连接、操作ftp服务器相关的内容

具体如何操作可以查看官方文档
ftplib文档

下面是使用ftplib 递归删除ftp文件夹内全部内容的代码

def delAllfile(ftp,ftppath):
    try:
        print (ftppath)
        try:
            ftp.cwd(ftppath)
        except Exception as e:
            print ("进入ftp目录失败" + str(e))
        ftp.dir('.', dir_res.append)  # 对当前目录进行dir(),将结果放入列表
        print(dir_res)
        for i in dir_res:
            if i.startswith("d"):
                dirName=i.split(" ")[-1]
                print("开始删除"+dirName+"文件夹")
                delAllfile(ftp,ftp.pwd() + "/" + dirName)
                ftp.cwd('..')
                print(ftppath+"/"+dirName)
                ftp.rmd(ftppath + '/' + dirName)
            else:
                filelist = ftp.getfiles(ftppath)
                for f in filelist:
                    print ("删除FTP目录:"+ftppath+"下存在文件:"+f)
                    ftp.delete(f)
    except Exception as e:
        raise e
你可以使用Python内置的 `ftplib` 库来实现下载FTP下的文件夹及其文件内容。下面是一个简单的示例代码: ```python import ftplib # 连接FTP服务器 ftp = ftplib.FTP("ftp.example.com") ftp.login("username", "password") # 定义下载函数 def download_folder(ftp, folder_path, local_path): # 切换到目标目录 ftp.cwd(folder_path) # 获取目录列表 file_list = ftp.nlst() # 遍历目录列表 for file_name in file_list: local_file_path = "{}/{}".format(local_path, file_name) if "." in file_name: # 如果是文件,则下载到本地指定目录 with open(local_file_path, "wb") as f: ftp.retrbinary("RETR {}".format(file_name), f.write) else: # 如果是目录,则递归下载 download_folder(ftp, file_name, local_file_path) # 切换回上级目录 ftp.cwd("..") # 调用下载函数 download_folder(ftp, "/remote/folder/path", "/local/folder/path") # 关闭连接 ftp.quit() ``` 在这个示例中,我们首先连接到FTP服务器,然后定义了一个名为 `download_folder` 的函数,用于递归下载指定目录下的所有文件和子目录。在函数中,我们使用 `ftp.cwd` 方法切换到指定目录,然后使用 `ftp.nlst` 方法获取目录列表。遍历目录列表时,如果是文件,则使用 `ftp.retrbinary` 方法下载到本地指定目录,如果是目录,则递归调用 `download_folder` 函数。最后,我们使用 `ftp.cwd` 方法切换回上级目录,关闭连接。 你可以根据实际情况修改函数中的参数,例如将远程目录路径和本地目录路径作为函数参数传入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值