Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用正则表达式从FTP服务器下载文件_Python_Ftp - Fatal编程技术网

Python 使用正则表达式从FTP服务器下载文件

Python 使用正则表达式从FTP服务器下载文件,python,ftp,Python,Ftp,我有一个承载数据文件的FTP服务器,其中数据关联的日期被编码到文件名中。我想写一个进程,可以找到并下载与特定日期相关的所有文件。复杂的是不同的文件使用不同的编码。(不幸的是,更改/标准化名称不是一个选项。)年份可以是四位数或两位数。月份可以是两位数或三个字母。有时表示日期,子字符串可以位于字符串中的任何位置 目前,我正在创建服务器上所有文件的列表,然后使用正则表达式确定哪些文件相关,然后下载这些文件 有可能浓缩前两个步骤吗?也就是说,有没有办法让服务器返回与表达式匹配的文件列表 如果有什么不同的

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

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

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


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

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

定义FTP客户端的可用命令。列出远程服务器上文件的可用命令有
list
MLSD
NSLT
,对于所有这些命令,唯一可用的参数是目录名-无法通过regex或其他方式筛选文件


获取列表并在客户端解析它们并不是很大的开销,但是,除非您处理数百万个文件,否则使用LIST、MLSD和NSLT在FTP上构建文件的本地索引,然后使用regex从索引中过滤不需要的文件应该相当简单,然后使用批处理脚本中的剩余部分下载它们。

谢谢。就名单的大小而言,这没什么大不了的。我只是觉得我会尽可能的让过程紧凑。