求助,Python递归删除FTP文件夹以及文件的方法
百度找了几个都不能用,自己写了一段也有点问题def delAllfile(self, ftppath):
try:
self.ftp.cwd(ftppath)
except Exception as e:
# 报错就认为是文件
self.ftp.delete(ftppath)
RemoteNames = self.ftp.nlst()
print(RemoteNames)
if "." in RemoteNames:
RemoteNames.remove(".")
if ".." in RemoteNames:
RemoteNames.remove("..")
for file in RemoteNames: # 1231 13123213
if file.find(".") == -1:
print(file)
self.delAllfile(file)
else:
self.ftp.delete(file)
self.ftp.cwd("..")
print(ftppath)
self.ftp.rmd(ftppath) 上边是自己写的一段,它删到最顶级的时候就会报找不到文件 用os.walk更好 无闻无问 发表于 2021-4-28 21:46
用os.walk更好
ftp上操作没有os属性 from ftplib import FTP
ftp=FTP()
ftp.encoding='utf-8'
ftp.connect(host='192.168.1.4',port=21)#自定义端口请填写
ftp.login()#可以传用户密码格式user='',passwd=''匿名登录不填
#展示目录下的文件
l=ftp.nlst('/Download/')
print(l)
#删除new文件夹 先判断一下是否存在
#改操作直接删除文件及子目录无需遍历删除文件
path='new'
if path in l:
ftp.rmd('/Download/new/')
print('删除'+path+'成功')
else:
print('文件夹不存在')
#显示一下目录看文件夹还存在否
l=ftp.nlst('/Download/')
print(l)
ftp.quit()
不需要那么复杂 fanvalen 发表于 2021-4-28 21:49
from ftplib import FTP
ftp=FTP()
ftp.encoding='utf-8'
当然你要显示删除什么文件就自行遍历了
不过也没什么卵用删除了要么恢复数据
要么不要了 class FtpController:
def __init__(self, host, username, password):
ftp_server = ftplib.FTP(host)
ftp_server.encoding = "utf-8"
ftp_server.login(username, password)
self.ftp = ftp_server
def del_all_file(self, ftp_path):
self.ftp.cwd(ftp_path)
files = self.ftp.mlsd()
# 清空当前目录
for file in files:
if file['type'] == 'dir':
self.del_all_file(file)
if file['type'] == 'file':
self.ftp.delete(file)
# 删除当前目录
self.ftp.rmd(".")
# 退回到上级目录
self.ftp.cwd("..")
if __name__ == '__main__':
print_hi('PyCharm')
ftp = FtpController("localhost", "admin", "admin")
ftp.del_all_file("/com/example") 最近想学一下python,没找到适合小白的。 ftp没删过,删过本地的,https://blog.csdn.net/fj_changing/article/details/108418504 -BGZ- 发表于 2021-4-28 22:03
最近想学一下python,没找到适合小白的。
b站 搜python 一大堆 看个几十小时就入门了
页:
[1]
2