2
我期待調度FTP文件傳輸,但節省帶寬,我想只能上傳已更改的文件。什麼是一種很好的可靠的方式來做到這一點,將在各種不同的託管服務提供商工作?Python ftplib:檢查文件是否已更改的最佳方法?
我期待調度FTP文件傳輸,但節省帶寬,我想只能上傳已更改的文件。什麼是一種很好的可靠的方式來做到這一點,將在各種不同的託管服務提供商工作?Python ftplib:檢查文件是否已更改的最佳方法?
首先,檢查,以查看本地文件是否真的變了沒有任何與FTP。你說的是你只打開一個FTP連接來上傳文件,如果/當它發生了變化。
在高層次上,您需要使用的基本策略是跟蹤應用程序上次檢查更改的時間(以前的執行時間戳),並將其與您感興趣的文件的時間戳進行比較在上傳。如果文件上的時間戳更新,它們很可能已經改變。我說很可能是因爲可以只更新時間戳(例如,unix/linux上的touch
)。
這裏是你展示如何檢查修改時間對於所有在特定目錄中的項目的一個簡單的例子:
import os, time
checkdir="./"
for item in os.listdir(checkdir):
item_path = "%s%s"%(checkdir,item)
mtime = os.path.getmtime(item_path)
print "%s: %s" %(item_path,mtime)
請注意,這並不文件類型之間的區別(如普通文件,目錄,符號鏈接)。閱讀docs on os.path以瞭解如何確定文件類型,以便您可以跳過某些類型(如果您願意的話)。
您仍然需要提出邏輯來存儲先前'掃描'的時間,以便在後續掃描中引用它。一個非常簡單的方法是將值存儲在文件中。
確保您在使用的情況下鎖定策略二「掃描」重疊區。 FTP上傳需要一些時間才能完成。