python ftplib ftp目录下所有文件_使用ftplib模块,实现列出ftp上指定目录下的所有文件,包含子目录...

本文介绍了一个Python脚本,用于统计FTP服务器上指定目录内的文件夹数量、文件数量及总大小。该脚本通过递归方式遍历目录,并使用ftplib模块进行FTP操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# coding: utf-8

# for python35+

import os

import ftplib

class FtpTools(object):

def __init__(self, host, username, password):

self.dir_sum = 0

self.res_sum = 0

self.size_sum = 0

self.host = host

self.username = username

self.password = password

self.ftp = ftplib.FTP(self.host)

self.ftp.login(self.username, self.password)

self.ftp.encoding='utf-8'

def filelist(self, ftp_dir):

self.ftp.cwd(ftp_dir)

for name, facts in self.ftp.mlsd(".",["type", "size"]):

if facts["type"] == "dir":

if self.ftp.pwd().endswith('/'):

dir_cwd = self.ftp.pwd() + name

else:

dir_cwd = self.ftp.pwd() + os.sep + name

try:

self.dir_sum += 1

self.filelist(dir_cwd)

self.ftp.cwd('..')

except:

pass

else:

self.res_sum += 1

self.size_sum += int(facts["size"])

if self.ftp.pwd().endswith('/'):

res_path = self.ftp.pwd() + name

else:

res_path = self.ftp.pwd() + os.sep + name

print (res_path)

def count(self):

count_msg = f"文件夹: {self.dir_sum}, 文件数: {self.res_sum}, 总大小: {self.size_sum/1024/1024}/MB"

print (count_msg)

def close():

self.ftp.quit()

if __name__ == "__main__":

host = "192.168.1.111"

username = "test"

password = "test.com"

ftptools = FtpTools(host, username, password)

ftptools.filelist('/')

ftptools.count()

结果

(py3) [root@mongodb ftptools]# python ftptools.py /bitnami-redmine-4.0.2-0-linux-x64-installer.run/mysite-master/blogApp/admin.py/mysite-master/blogApp/apps.py/mysite-master/blogApp/models.py/mysite-master/blogApp/serializers.py/mysite-master/blogApp/tests.py/mysite-master/blogApp/urls.py/mysite-master/blogApp/views.py/mysite-master/manage.py/mysite-master/mysite/settings.py/mysite-master/mysite/urls.py/mysite-master/mysite/wsgi.py/mysite-master/README.md/mysite-master/requirments.txt/mysite-master/同步.bat/mysite-master/启动.bat.../procexp64.exe/TeamViewer_Setup.exe文件夹: 10, 文件数: 56, 总大小: 240.06631660461426/MB

原创文章,作者:Tina,如若转载,请注明出处:https://python.01314.cn/201903536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值