Python 使用正则表达式从FTP服务器下载文件
我有一个承载数据文件的FTP服务器,其中数据关联的日期被编码到文件名中。我想写一个进程,可以找到并下载与特定日期相关的所有文件。复杂的是不同的文件使用不同的编码。(不幸的是,更改/标准化名称不是一个选项。)年份可以是四位数或两位数。月份可以是两位数或三个字母。有时表示日期,子字符串可以位于字符串中的任何位置 目前,我正在创建服务器上所有文件的列表,然后使用正则表达式确定哪些文件相关,然后下载这些文件 有可能浓缩前两个步骤吗?也就是说,有没有办法让服务器返回与表达式匹配的文件列表Python 使用正则表达式从FTP服务器下载文件,python,ftp,Python,Ftp,我有一个承载数据文件的FTP服务器,其中数据关联的日期被编码到文件名中。我想写一个进程,可以找到并下载与特定日期相关的所有文件。复杂的是不同的文件使用不同的编码。(不幸的是,更改/标准化名称不是一个选项。)年份可以是四位数或两位数。月份可以是两位数或三个字母。有时表示日期,子字符串可以位于字符串中的任何位置 目前,我正在创建服务器上所有文件的列表,然后使用正则表达式确定哪些文件相关,然后下载这些文件 有可能浓缩前两个步骤吗?也就是说,有没有办法让服务器返回与表达式匹配的文件列表 如果有什么不同的
如果有什么不同的话,我会使用Python ftplib。简短的回答是否,这是不可能的(使用FTP) 定义FTP客户端的可用命令。列出远程服务器上文件的可用命令有
list
、MLSD
和NSLT
,对于所有这些命令,唯一可用的参数是目录名-无法通过regex或其他方式筛选文件
获取列表并在客户端解析它们并不是很大的开销,但是,除非您处理数百万个文件,否则使用LIST、MLSD和NSLT在FTP上构建文件的本地索引,然后使用regex从索引中过滤不需要的文件应该相当简单,然后使用批处理脚本中的剩余部分下载它们。谢谢。就名单的大小而言,这没什么大不了的。我只是觉得我会尽可能的让过程紧凑。