列出Ftp中所有文件夹和文件

给定Ftp的IP地址、用户名和密码,列出其中所有文件夹和文件。

# python ftpdir.py <ip> <username> <password>
import ftplib
import sys

def lineCallBack(line):
    
global lines
    lines.append(line)
    
def getFileName(aname):
    names
=aname.split()
    
if len(names) < 9:
        
return ''
    
else:
        fileNames
=names[8:]
        res
=''
        
for name in fileNames:
            res 
= res + name+' '
        
return res.strip()

def getDirsFiles(alines):
    dirs
=[]
    files
=[]
    
for line in alines:
        
if line.startswith('d'):
            fileName
=getFileName(line)
            
if fileName=='.' or fileName=='..' :
                
continue
            dirs.append(fileName)
        
elif line.startswith('-'):
            fileName
=getFileName(line)
            files.append(fileName)
    
return dirs,files
            
def printItem(pathLevel,item):
    
#part2='|-------'
    #indent=8
    part1=('/t')*pathLevel
    
print part1+item    

def listDir(aftp,path,pathLevel):
    
global lines
    aftp.cwd(path)
    lines
=[]
    aftp.retrlines(
'LIST',lineCallBack)
    dirs,files
=getDirsFiles(lines)
    
for dir in dirs:
        printItem(pathLevel,dir)
        listDir(aftp,path
+dir+'/',pathLevel+1)
    
for file in files:
        printItem(pathLevel,file)
    

host
=sys.argv[1]
user
=sys.argv[2]
password
=sys.argv[3]
ftp
=ftplib.FTP(host,user,password)

lines
=[]   
listDir(ftp,
'/',0)








 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值