Python 有一个标准库模块ftplib
来运行FTP 通信。它有两种获取目录内容列表的方法。其中之一,FTP.nlst()
,将返回一个目录的内容列表,给定一个目录名作为参数。 (如果给定文件名,它将返回文件名。)这是列出目录内容的可靠方法,但不会给出列表中的每一项是文件还是目录的任何指示。另一种方法是 FTP.dir()
,它以字符串格式列出作为参数给出的目录的目录内容(或文件属性,给定文件名)。
根据 a previous question on Stack Overflow , 解析 dir()
的结果可能很脆弱(不同的服务器可能返回不同的字符串)。不过,我正在寻找某种方法来通过 FTP 仅列出另一个目录中包含的目录。据我所知,在字符串的权限部分抓取 d
是我想出的唯一解决方案,但我想我不能保证权限会出现在不同服务器之间的相同位置。是否有更强大的解决方案来识别通过 FTP 的目录?
最佳答案
不幸的是,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
关于python - 通过 FTP 确定列表是 Python 中的目录还是文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/584865/