簡體   English   中英

使用正則表達式從FTP服務器下載文件

[英]Download Files From FTP Server Using Regular Expression

我有一台托管數據文件的FTP服務器,其中與數據關聯的日期被編碼為文件名。 我想編寫一個過程,該過程可以查找和下載與特定日期關聯的所有文件。 復雜之處在於,不同的文件使用不同的編碼。 (不幸的是,更改/標准化名稱不是一種選擇。)年份可以是四位數或兩位數。 該月份可以是兩位數或三個字母。 有時表示日期,並且子字符串可以在字符串中的任何位置。

目前,我正在創建服務器上所有文件的列表,然后使用正則表達式確定哪些文件相關,然后下載這些文件。

是否可以濃縮前兩個步驟? 也就是說,有沒有辦法讓服務器返回與表達式匹配的文件列表?

如果有任何區別,我正在使用Python ftplib。

使用LIST,MLSD和NSLT在FTP上建立文件的本地索引,然后使用正則表達式從索引中過濾掉不需要的文件,然后在批處理腳本中使用其余文件來下載它們,應該相當簡單。

簡短的回答是no ,這是不可能的(使用FTP)。

RFC 5797第3節定義了FTP客戶端可用的命令。 列出遠程服務器上文件的可用命令是LISTMLSDNSLT ,所有這些命令中唯一可用的參數是目錄名稱-無法通過正則表達式或其他方式過濾文件。

但是,除非您要處理數百萬個文件,否則獲取清單並在客戶端中解析它們並不會有很大的開銷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM