现在的位置: 首页 > 综合 > 正文

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

2019年03月11日 ⁄ 综合 ⁄ 共 1311字 ⁄ 字号 评论关闭

给定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)








 

【上篇】
【下篇】

抱歉!评论已关闭.