Python FTP遍历删除文件夹

python FTP批量下载/删除/上传实例 今天小编就为大家分享一篇python FTP批量下载/删除/上传实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 立即下载

转载请注明出处

http://blog.youkuaiyun.com/xugangjava/article/details/7401906


总体思路是:使用递归来 遍历文件 和文件夹  遍历过程中 直接删除掉 文件 将文件夹路径添加到列表中

yield 操作是在  for 递归遍历子文件夹 之后 所以先返回的是子文件夹 

这时返回的文件夹肯定是空文件夹 ,使用rm命令就可以直接删除掉文件夹了


下面是核心代码

# -*- coding:gbk -*-
# Author:       许刚
# Created:      2012/3/28
import sitecustomize
import thread
from wx import _misc
from ftplib import FTP
import wx,os,uuid,socket,sys,time,re
from twisted.python import log
import wx.lib.agw.ultimatelistctrl as ULC
from msgbox import *
from db import Cfg
from win32com.shell import shell, shellcon 
from win32con import FILE_ATTRIBUTE_NORMAL
from base import PanelWarpCtrl,FileItem,FileImageList

########################################################################
class FtpHandler(FTP):
	"""ftp uploader handler"""
	#blocksize=65536
	def connect(self):
		return self.login(Cfg.c_name,Cfg.c_pwd)

	def login(self,name,pwd):
		try:
			FTP.connect(self,Cfg.c_ftpurl,int(Cfg.c_ftpport))
		except:
			log.err(sys.exc_info())
			MessageBoxError('无法连接上传服务器!')
			return False
		try:
			FTP.login(self,name,pwd)
		except:
			log.err(sys.exc_info())
			MessageBoxError('无法连接上传服务器,\n用户名或密码错误!')
			return False
		return True
	
	def delete(self, filename):
		'''Delete a file.'''
		self.sendcmd('DELE ' + filename)
		
	def mlsd(self,callback = None):
		self.retrlines('MLSD',callback)
	
	def listdir(self,root):
		items=[]
		self.mlsd(lambda x:items.append(FileItem(x)))			
		return items
	
	def deletedir(self,root):
		def walk(root):
			dirs = []
			def ParseLine(line):
				f=FileItem(line)
				if f.isdir:
					dirs.append(os.path.join(root,f.fname))
				else:
					self.delete(f.fname)
			self.cwd(root)
			self.mlsd(ParseLine)
			for name in dirs:
				new_path = os.path.join(root, name)
				for x in walk(new_path):yield x	
			yield dirs	

		for dirs in walk(root):
			for d in dirs:
				self.rmd(d)
		self.rmd(root)



其中FileItem用来解析 Ftp 返回的文件列表

mport wx
import re,os
from wx import MimeTypesManager
from win32com.shell import shell, shellcon  
from win32con import FILE_ATTRIBUTE_NORMAL  
mimeTypeManager=MimeTypesManager()



########################################################################
class FileItem:
	pattern=re.compile('modify=(?P<modify>\d+);perm=(?P<perm>\w+);size=(?P<size>\d+);type=(?P<type>\w+);\s(?P<filename>.*)')
	def __init__(self,line):
		m=FileItem.pattern.search(line)		
		self.isdir=m.group('type')=='dir'
		self.size='' if self.isdir else m.group('size')
		self.time='' if self.isdir else m.group('modify')
		self.fname=m.group('filename')
		self.ext=os.path.splitext(self.fname)[-1]				
	def GetDesc(self):
		desc=''
		if self.isdir:
			desc='文件夹'
		elif self.ext:
			fileType=mimeTypeManager.GetFileTypeFromExtension(self.ext)
			if fileType:
				desc=fileType.GetDescription()
				if desc is None:
					desc=''
		return desc	
	

最后运行结果





【紫光同创PG2L200H开发板】盘古200Pro+开发板(MES2L676-200HP) 开发板 SMA接口符合标准 SMA 接口规范,可使用”内螺旋+插针“的 SMA 线连接板卡”外螺旋+插孔”的 SMA 接口进行通信,板卡 SMA 接口与 FPGA 的 HSST 收发器的一路 RX/TX 相连,TX信号和 RX 信号都是以差分信号方式通过隔直电容连接 FPGA 和 SMA 接口, TX 发送和 RX 接收数据速率高达 6.6Gb/s。为了减轻带电插拔造成对 FPGA 芯片的损坏,在设计上在 JTAG 信号位置添加了保护二极管来保证信号的电压在 FPGA 接受的范围,避免 FPGA 的损坏。 阅读详情

相关推荐

Wafer的T7 Code是什么,怎么来的

在半导体Cim系统中,waferstart 业务需要支持 Sorter 读取 Wafer 的 T7 Code,与 MES 的 Wafer ID 进行绑定,以便向 前追溯 Wafer 历史,那么问题来了,T7code 是什么Wafer的T7 Code是一种,用于标识双面抛光的晶圆。这种标记采用二维矩阵代码符号,适用于各种尺寸的晶圆,不仅限于450mm无缺口晶圆7。T7 Code是衬底来料背面通常会有的供应商刻的追溯ID,这是一串数字和字母组成的流水码。

阿拉伯梳子的专栏 7921

Python远程删除Ftp目录文件

三步完成删除ftp上指定目录空间

努力奋斗 2443

汽车LED驱动芯片TPS92682-Q1 SPI接口配置与调试实战指南

SPI(串行外设接口)作为一种高速、全双工的同步串行通信总线,广泛应用于微控制器与外围设备之间的数据交换。其工作原理基于主从架构,通过时钟、数据线和片选信号实现设备间的精准时序控制。在汽车电子和工业控制领域,SPI因其简单高效、易于扩展的特性,成为配置复杂电源管理芯片、传感器和存储器的关键技术。通过SPI接口,工程师能够动态调整设备参数、实时读取状态信息,并实现复杂的故障诊断与保护策略,极大地提升了系统的灵活性与可靠性。本文以汽车级双通道LED恒流驱动器TPS92682-Q1为例,深入解析如何通过SPI接口

weixin_29185493的博客 287

使用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 auto...

光脚虾的博客 2932

逆向学习:从已上线微信小游戏反推Cocos工程结构(以切水果跑酷为例)

本文以“切水果跑酷”为例,详细介绍了如何通过逆向分析已上线的微信小游戏,反推其基于Cocos Creator的原始工程结构。文章深入拆解了编译后的目录骨架、资源加载逻辑与依赖关系,并重点解析了微信平台API的调用特征,为开发者提供了一种高效学习游戏架构与设计模式的实用方法。

kk1234的博客 1070

RTPS规范v2.3(中文版)

DDSI-RTPSv2.3,DDS发现互操作性-实时发布订阅通信协议,中文版

pony12的专栏 752

python ftp遍历文件夹_Python FTP遍历删除文件夹 | 学步园

转载请注明出处总体思路是:使用递归来 遍历文件 和文件夹 遍历过程中 直接删除掉 文件 将文件夹路径添加到列表中yield 操作是在 for 递归遍历子文件夹 之后 所以先返回的是子文件夹这时返回的文件夹肯定是空文件夹 ,使用rm命令就可以直接删除掉文件夹了下面是核心代码# -*- coding:gbk -*-# Author: 许刚# Created: 2012/3/2...

weixin_39892019的博客 438

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py库,详细演示了如何读取HDF5文件结构、理解数据分类(如传感器、健康参数、场景描述符)并加载为Pandas DataFrame。文章还澄清了数据集中常见的变量数量疑惑,并给出了从数据加载到构建剩余使用寿命预测模型预处理流水线的完整代码,帮助工程师和研究人员高效入门航空发动机预测性维护分析。

weixin_29057065的博客 421

python定时ftp上传和删除_自动运维工具:使用Python删除FTP服务器文件,python,实现,对,的...

删除FTP服务器上的文件,支持多个文件。使用方法:pythondelFtpFiles.py[--ip ip] [--port port] [--user user] [--password password] file1 file2...#/usr/bin/env python# -*- coding: UTF-8 -*-# FileName : delFtpFiles.py# Autho...

weixin_39848007的博客 525

医学图像可视化实战:ITK-SNAP与Python+SimpleITK双方案解析

本文深入解析了医学图像可视化的两大核心方案:ITK-SNAP与Python+SimpleITK。ITK-SNAP作为专业无损浏览器,是数据探索与分析的必备工具;而Python+SimpleITK方案则提供了自动化处理能力,但需注意将.nii.gz数据转换为JPG等格式时的信息损失。文章通过实战对比,为医学影像处理者提供了清晰的选择指南与避坑建议。

ol789012的博客 489

从零到一:用Verilog和Quartus构建智能交通灯系统的实战指南

本文详细介绍了如何使用Verilog和Quartus Prime从零开始构建智能交通灯系统。通过分步指导,包括状态机设计、时序控制、数码管显示等核心模块实现,并结合ModelSim仿真验证,帮助FPGA初学者掌握数字电路设计的关键技术。文章还提供了实际部署到FPGA开发板的调试技巧和进阶优化方案。

weixin_29172201的博客 472

python定时删除指定路径下目录及文件

python中os.remove可递归删除指定目录和文件: import os import time dirPath=r"D:\ftp" while True: for root, dirs, files in os.walk(dirPath, topdown=False): for name in files: os.remove(os.path.join(root, name)) print("%s文件删除成功 %s" % (

weixin_43238531的博客 2930

2026年GESP3月认证C++五级真题解析

因为要合并成升序数组,所以当A[i]小于等于B[j]时,取A[i],否则取B[j]。当a[i]>a[j]时,左边数组中从i到m的所有元素都大于a[j],因此逆序对数量增加m-i+1。给定一个包含n个互不相同的正整数的数组A与一个包含m个互不相同的正整数的数组B,请你帮忙计算有多少个数在数组A与数组B中均出现。下面代码实现两个整数除法,其中被除数为一个“大整数”,用字符串表示,除数是一个小整数,用int表示,则横线处应该填写()。且a[i] > a[j],则a[i]和a[j]是一个逆序对。

lan_in的博客 116

远程删除FTP端文件

主要功能:远程删除文件问题点:删除文件后,FTP客户端立即查发现文件没消失,过一会儿才看到消失。原因待确认。也许是客户端查询机制不及时造成的。encoding:utf-8author = ‘Aaron’import socket import os import time import sysfrom ftplib import FTP ftp_server=” ftp_user=” f

skwaityou的专栏 5115

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python 连接ftp 上传(下载) 文件/文件夹 (后续待补充。。。)

# coding:utf-8 import ftplib import os import shutil # 连接ftp class FtpFunction(): # 开启资源 def __init__(self, host, port, userName, passWord, TimeOut, Encode): self.ftp = ftplib.FTP() self.ftp.connect(host, port, TimeOut) sel

weixin_44818598的博客 799

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python ftp遍历文件夹_python如何遍历文件夹

python下遍历某个路径所有文件是很常用的事,一直对其有所困扰,那么python如何遍历文件夹呢?一起来了解下吧:python如何遍历文件夹方法一 : 利用函数 os.walk()os.walk() 会返回三元元组 (dirpath, dirnames, filenames)dirpath : 根路径 (字符串)dirnames : 路径下的所有目录名 (列表)filenames : 路径下的所...

weixin_32929205的博客 1248

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python ftp遍历文件夹_Python FTP两个文件夹间的同步实例代码

具体代码如下所示:# -*- coding: utf-8 -*-'''''''ftp自动检测源文件夹的更新,将源文件夹更新的内容拷贝到目标文件夹中使用树的层序遍历算法,支持深度目录拷贝'''import osfrom ftplib import FTPimport os,sys,string,datetime,timeimport shutilimport socketclass MyUpdate...

weixin_39862716的博客 197

python ftp上传 多个文件 不同文件夹_Python FTP两个文件夹间的同步实例代码

具体代码如下所示:# -*- coding: utf-8 -*-'''''''ftp自动检测源文件夹的更新,将源文件夹更新的内容拷贝到目标文件夹中使用树的层序遍历算法,支持深度目录拷贝'''import osfrom ftplib import FTPimport os,sys,string,datetime,timeimport shutilimport socketclass MyUpdate...

weixin_35457696的博客 189

python递归文件夹上次到ftp

如果你想递归地上传文件夹中的所有文件到FTP,可以使用Python的FTP库来实现。下面是一个简单的例子,使用ftplib库: import ftplib import os def upload_folder_to_ftp(ftp, folder_path): for root, dirs, files in os.walk(folder_path): for file...

weixin_35755640的博客 191

python统计指定目录中文件及目录个数_python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小...

本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。主要要求:指定目录下,文件夹数目/文件数目/所有文件大小,类似Windows如下功能:模块介绍:from ftplib import FTPftp = FTP() #设置变量ftp.set_debuglevel(2) #打开调试级别2 显示详细信息ftp.connect("IP", "port") #连接ftp, IP和端口ftp.log(...

weixin_39947016的博客 908

python连接ftp服务器 下载整个目录 ftp删除目录 删除文件 下载单个文件 ftp 上传目录

代码】python连接ftp服务器。

nongcunqq的博客 724

python--FTP两个文件夹间的同步

# -*- coding: utf-8 -*- ''''' ftp自动检测源文件夹的更新,将源文件夹更新的内容拷贝到目标文件夹中 使用树的层序遍历算法,支持深度目录拷贝 ''' import os from ftplib import FTP import os,sys,string,datetime,time import shutil import socket class

u012289758的专栏 997

python sftp 删除目录_Python使用paramiko的SFTP get或put整个目录

#定义一个类,表示一台远端linux主机classLinux(object):#通过IP, 用户名,密码,超时时间初始化一个远程Linux主机def __init__(self, ip, username, password, timeout=30):self.ip=ipself.username=usernameself.password=passwordself.timeout=timeout...

weixin_39768695的博客 463

删除ftp服务器文件550,FTP 550错误:EGDAR FTP服务器中没有这样的文件或目录

我试图在不同年份下载不同季度的所有master.idx文件。 EDGAR FTP的结构如下: “edgar/full-index/2011/QTR3 /”,在QTR3文件夹中是master.idx文件。FTP 550错误:EGDAR FTP服务器中没有这样的文件或目录我试图通过循环访问不同年份的文件夹,但它返回了550错误。所以我试图像这样测试循环。from ftplib import FTPft...

weixin_42357981的博客 1824

【Python基础学习】—文件和文件夹操作

前言 日常开发过程中,我们常常需要用到文件以及文件夹操作,这些操作在linux命令行下本身就有,但是一旦我们需要将文件进行自动化操作,如写入、遍历读取、或者上传文件等等操作,我们就需要在Python下进行文件自动化操作的编程。本文主要介绍这些文件、文件夹操作,并作了一定归纳。 一、Python文件I/O操作 1、 打开文件:file object = open(file_name [,...

dream_successor的专栏 406

通过python实现文件的创建,删除,删除文件夹和非空文件夹

import os#os.mkdir("shazi")#文件夹的创建#os.rmdir("shazi")#删除目录为空的文件夹#os.rmdir("shazi/shazi02")#删除shazi文件下的shazi02文件夹(注意:这里的shazi02为空文件夹)#print(os.getcwd())#获取当前目录# temp=os.chdir("shazi")#改变默认目录# print(temp...

qq_38215042的博客 1170
上一篇: CHtmlView 去掉边框
下一篇: 10分钟API Hook MessageBox
xugangjava
博客等级 码龄16年 83粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值