我想在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…