最近有个需求需要统计ftp上指定目录下的所有文件信息,因为目录层级较深,不同目录存在重名文件,后期会需要根据文件大小做一些筛选。所以计划对初始目录进行遍历,输出其下所有文件的全路径和大小。代码如下:
#coding=utf-8
# writre by qy.wu
from ftplib import FTP
import pymysql
def get_ftp_dir(start_path):
ftp_ip = ''
user = ''
passwd =''
start_dir =''
ftp = FTP()
start_path =start_path
ftp.connect(host=ftp_ip,port=21)
ftp.login(user=user,passwd=passwd)
fp = open("try.txt",'w+')
##获取传入初始路路径下的所有文件和大小 输出到文件中
def run(start_path):
ftp.cwd(start_dir)
dir_res = []
ftp.dir['.',dir_res.append]
for i in dir_res:
##判断是否是目录
if i.startwith('d'):
##如是目录回调run()方法
run(ftp.pwd()+'/'+str(i).split(' ')[-1])
ftp.cwd('..')
else:
##如不是目录 排除total 0的非目标数据后,输出目录数据
if len(str(i).split(' ')) >3 :
fp.writelines(ftp.pwd()+"/"+str(i).split(' ')[-1]+" "+str(i).split(' ')[-5]+"\n")
输入结果样式如下: