Python ftp仅列出目录而不是文件

我想在ftp目录中列出所有目录,然后输入每个目录.

问题是我的代码也列出了文件并尝试输入它们.

>有没有办法从方法ftp.cwd获取返回值?
>有没有办法首先获得目录名称,或者有更好的方法来做我想要的.

这是我现在使用的代码:

    from ftplib import FTP
    ftp = FTP('ftp.overtherainbow.com')
    ftp.login()
    for name in ftp.nlst():
        print "listing: " + name
        ftp.cwd(name)
        ftp.retrlines('LIST')
        ftp.cwd('../')

最佳答案 FTP协议没有区分目录和文件的方法(如列表).我认为最好的选择是尝试和失败

try:
    ftp.cwd(name)
except ftplib.error_perm as detail:
    print("It's probably not a directory:", detail)

或者您可能想要解析目录列表中的输出.但这不是平台独立的,因为目录列表因操作系统而异.
如图所示here…

点赞