ftplib删除目录子目录及文件
时间: 2024-11-30 08:22:46 浏览: 5
Python FtpLib模块应用操作详解
在Python中,你可以使用`ftplib`模块配合`os`模块来删除FTP服务器上的目录、子目录以及文件。这里是一个基本的例子:
首先,你需要有一个已经连接到FTP服务器的`FTP`对象,通常通过`ftplib.FTP()`创建。然后你可以按照以下步骤操作:
```python
import os
from ftplib import FTP
def remove_files_and_dir(ftp, path):
# 判断路径是否存在
if not ftp.cwd(path): # 如果路径不存在直接返回
return
try:
# 删除当前目录下的文件
for filename in ftp.nlst(): # 获取目录下所有文件名
if filename != '.' and filename != '..': # 避免删除'.','..'
ftp.delete(filename)
# 清空目录
ftp.rmd(path) # rmd表示remove directory
# 移除上级目录(如果还有其他文件)
parent_dir = os.path.dirname(path)
if parent_dir != path:
remove_files_and_dir(ftp, parent_dir)
except ftplib.error_perm as e:
# 捕获权限错误,例如尝试删除根目录等
print(f"Error deleting {path}: {e}")
# 使用FTP对象并传入要删除的目录路径
ftp.delete_recurse = True # 设置默认删除递归
ftp.cwd('your_directory_path') # 转换到目标目录
remove_files_and_dir(ftp, 'your_directory_path')
```
在这个例子中,`remove_files_and_dir`函数会递归地删除指定路径下的所有文件和子目录。注意,这需要服务器支持相关的命令(如`rmdir`和`delete`),并且有适当的权限。
阅读全文