我在检索远程FTP站点上的目录列表方面遇到了困难。这个答案不起作用(我没有输出,它似乎停滞了)。
以下是我能想到的最简单的实现方式 - 它应该只打印出它找到的每个目录的完整路径:
然而,它只输出以下内容。它表明工作目录一次被更改为一个新的子目录,但是当ftp_walk()用新的cwd调用时,它不会再继续往下走:
以下是我能想到的最简单的实现方式 - 它应该只打印出它找到的每个目录的完整路径:
import ftplib
def ftp_walk(ftp):
print 'Path:', ftp.pwd()
dirs = ftp.nlst()
for item in (path for path in dirs if path not in ('.', '..')):
try:
ftp.cwd(item)
print 'Changed to', ftp.pwd()
ftp_walk(ftp)
ftp.cwd('..')
except Exception, e:
print item, e
ftp = ftplib.FTP('ftp.site.com')
ftp.login('user', 'pass')
ftp.cwd('1')
ftp_walk(ftp)
我的目录结构如下:
1/
1-1/
1-2/
1-2/
1-3/
1-4
然而,它只输出以下内容。它表明工作目录一次被更改为一个新的子目录,但是当ftp_walk()用新的cwd调用时,它不会再继续往下走:
> Path: 1/
> Changed to 1-1/
for path in dirs:
,然后if path in ('.', '..'): continue
,然后像以前一样继续进行。 - Karl Knechtel