Python具有ftplib运行FTP通信的标准库模块。它有两种获取目录内容列表的方法。一个FTP.nlst()会返回给定目录名称作为参数的目录内容列表。(如果给定文件名,它将返回文件名。)这是列出目录内容的可靠方法,但不提供任何指示列表中的每个项目是文件还是目录。另一个方法是FTP.dir(),它以字符串格式列出作为参数给出的目录的目录内容(或给定文件名的文件属性)。
ftplib
FTP.nlst()
FTP.dir()
根据上一个关于Stack Overflow的问题,解析的结果dir()可能很脆弱(不同的服务器可能返回不同的字符串)。我正在寻找某种方法来列出仅通过FTP包含在另一个目录中的目录。据我所知,d我想出的唯一解决方案是删除字符串的权限部分中的a ,但是我想我不能保证权限将出现在不同服务器之间的同一位置。是否有更健壮的解决方案来通过FTP识别目录?
dir()
d
不幸的是,FTP没有命令仅列出文件夹,因此解析从ftp.dir()获得的结果是“最佳”的。
一个简单的应用程序,假设ls是标准结果(不是Windows ftp)
from ftplib import FTP ftp = FTP(host, user, passwd) for r in ftp.dir(): if r.upper().startswith('D'): print r[58:] # Starting point
标准FTP命令
自定义FTP命令