python - 通过 FTP 确定列表是 Python 中的目录还是文件

标签 python ftp

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

Standard FTP Commands

Custom FTP Commands

关于python - 通过 FTP 确定列表是 Python 中的目录还是文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/584865/

相关文章:

python - 如何在两个模型日期字段之间设置时间增量

python - 如何在 SQLAlchemy 中将 joinedload/contains_eager 用于启用查询的关系(惰性 ='dynamic' 选项)

python - 更改 Python Cmd 模块处理自动完成的方式

python - Azure Durable Function 可以运行多长时间?

python - Django 休息框架 : Pagination w/ListModelMixin

python - 如何自动更新 python/bash 脚本?

ios - NSURLSession 是否支持 FTP 上传?

apache - FTP 用户权限

Python FTP服务器: How do I support both secure and insecure

iphone - 在应用程序内创建的文件的pathForResource