确定清单是FTP上的Python中的目录还是文件

发布于 2021-01-29 14:11:14

Python具有ftplib运行FTP通信的标准库模块。它有两种获取目录内容列表的方法。一个FTP.nlst()会返回给定目录名称作为参数的目录内容列表。(如果给定文件名,它将返回文件名。)这是列出目录内容的可靠方法,但不提供任何指示列表中的每个项目是文件还是目录。另一个方法是FTP.dir(),它以字符串格式列出作为参数给出的目录的目录内容(或给定文件名的文件属性)。

根据上一个关于Stack Overflow的问题,解析的结果dir()可能很脆弱(不同的服务器可能返回不同的字符串)。我正在寻找某种方法来列出仅通过FTP包含在另一个目录中的目录。据我所知,d我想出的唯一解决方案是删除字符串的权限部分中的a
,但是我想我不能保证权限将出现在不同服务器之间的同一位置。是否有更健壮的解决方案来通过FTP识别目录?

关注者
0
被浏览
114
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    不幸的是,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命令



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看