【问题标题】:Python 3 FTPLIB, NoneType Errors, and Uploads/DownloadsPython 3 FTPLIB、NoneType 错误和上传/下载
【发布时间】:2012-01-18 19:58:30
【问题描述】:

在我的脚本中,我希望最终能够下载一个目录和所有子目录中的所有文件......所以我正在尝试 FTPLIB。我正在尝试调用我的 ftp 服务器的 dir 并将其放入变量中,但我得到 NONETYPE?!我可以连接到服务器,当我调用 directory = session.dir() 它会在控制台中显示一种矩阵样式的输出,其中包含文件、读/写权限、日期等......但是当我尝试打印时我似乎得到的目录都是“无”。我最初的想法是将目录中的每个项目下载到我的计算机上,但我似乎无法获得目录列表!

directory = session.dir()
print(str(directory))

对于冗长且可能微不足道的解释感到抱歉,但我有点太沮丧了。

任何帮助将不胜感激!

-克莱姆

【问题讨论】:

  • “生成由 LIST 命令返回的目录列表,并将其打印到标准输出......此方法返回无”。这就是dir() 的含义。它不返回值。它打印了一些东西。
  • 好的,感谢您在他们的文档中指出“生产”部分。我现在已经解决了这个问题。 :)
  • @S.Lott 好的,这很奇怪,以前没有用,但非常感谢 S.Lott!我希望越来越好:)

标签: python list file-upload download ftplib


【解决方案1】:

首先,请阅读此内容。 http://docs.python.org/library/ftplib.html#ftplib.FTP.nlst

然后,试试这个:

directory = session.nlst()
print(directory)

注意。 你不需要做print(str(...))。 print 函数会为您获取字符串表示形式。

【讨论】:

  • 我刚刚尝试过,我得到“>” 我也一直在广泛阅读这些文档,但仍然没有找到答案.另外 9000 我刚刚尝试过 session.retrlines('list') 无济于事。抱歉,我对编程比较陌生。
  • "
  • 奇怪的是,这在之前不起作用......现在可以......嗯。也许只是一个缺陷?
  • “也许只是个缺陷?”?你是在暗示 Python 的行为是随机的吗?这是非常不可能的。更有可能是您忘记了 ()。
【解决方案2】:

official docs 中,第一个示例显示了如何执行您需要的操作:使用.retrlines('LIST') 读取LIST 命令的输出。

另一种方法是使用.nlst()

【讨论】:

  • 是的,我已经读过好几次了,只是我似乎无法让我的程序获取文件/目录的每个名称,我正在尝试找到一种方法来循环下载...:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
  • 2015-10-15
  • 1970-01-01
  • 2019-11-15
  • 2018-06-02
  • 2012-11-12
  • 1970-01-01
相关资源
最近更新 更多