【问题标题】:Download Files From FTP Server Using Regular Expression使用正则表达式从 FTP 服务器下载文件
【发布时间】:2014-10-02 17:28:25
【问题描述】:

我有一个托管数据文件的 FTP 服务器,其中与数据关联的日期被编码到文件名中。我想编写一个可以查找和下载与特定日期相关的所有文件的过程。复杂之处在于不同的文件使用不同的编码。 (不幸的是,更改/标准化名称不是一种选择。)年份可以是四位数或两位。月份可以是两位数或三个字母。有时表示日期,子字符串可以是字符串中的任何位置。

目前,我正在创建服务器上所有文件的列表,然后使用正则表达式确定哪些文件是相关的,然后下载这些文件。

可以把前两步浓缩吗?也就是说,有没有办法让服务器返回匹配表达式的文件列表?

如果这有什么不同的话,我正在使用 Python ftplib。

【问题讨论】:

    标签: python ftp


    【解决方案1】:

    使用 LIST、MLSD 和 NSLT 在 FTP 上建立文件的本地索引应该相当简单,然后使用正则表达式从索引中过滤掉不需要的文件,然后在批处理脚本中使用剩余的文件进行下载他们。

    【讨论】:

      【解决方案2】:

      简短的回答是,这是不可能的(使用 FTP)。

      RFC 5797 Section 3 定义 FTP 客户端可用的命令。列出远程服务器上文件的可用命令是LISTMLSDNSLT,对于所有这些命令,唯一可用的参数是目录的名称 - 无法通过正则表达式或其他方式过滤文件.

      不过,获取列表并在客户端中解析它们并不是很大的开销,除非您要处理数百万个文件

      【讨论】:

      • 谢谢。就列表的大小而言,没什么大不了的。只是想我会让这个过程尽可能紧凑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多