Python ftp 只列出目录而不是文件

标签 python list ftp directory cwd

我想列出 ftp 目录中的所有目录,然后输入每个目录。 问题是我的代码还列出了文件并尝试输入它们。

  1. 有没有办法从方法 ftp.cwd 中获取返回值?
  2. 有没有办法首先只获取目录名称,或者有更好的方法来做我想做的事。

这是我现在使用的代码:

    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 协议(protocol)无法区分目录和文件(如列表)。我认为最好的选择是尝试失败

try:
    ftp.cwd(name)
except ftplib.error_perm as detail:
    print("It's probably not a directory:", detail)

否则您可能想要解析目录列表的输出。不过,这不会与平台无关,因为目录列表因操作系统而异。 如图here...

关于Python ftp 只列出目录而不是文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169017/

相关文章:

list - 将 clojure 中的两个列表压缩为连接字符串列表

r - 根据行号将值分配给列表中各个数据帧的行

python - Python3中一串非英文字符的正确长度

python - Pandas DataFrame 子字符串匹配不起作用

python - 无法在 Apache、WSGI、Django 和 Windows 中加载虚拟环境

mysql - 重定向 FTP 请求

ios - initWithDelegate问题-Blackraccoon

Python - 如何将文本写入 GTK+ Vte 终端小部件?

python - 根据类 python 2.7 中的变量按字母顺序对类列表进行排序

ftp - FTP传输后更改文件扩展名