2016-08-16 30 views
0

所以,我正在從FTP服務器下載一些數據文件。我需要每天進入並檢索新文件並將它們保存在我的電腦上,但只有新文件。如何通過FTP下載文件並保存在本地,只有當文件不存在?

到目前爲止的代碼:

from ftplib import FTP 
import os 

ftp = FTP('ftp.example.com') 
ftp.login() 
ftp.retrlines('LIST') 
filenames = ftp.nlst() 

for filename in filenames: 
    if filename not in ['..', '.']: 
     local_filename = os.path.join('C:\\Financial Data\\', filename) 
     file = open(local_filename, mode = 'x') 
     ftp.retrbinary('RETR '+ filename, file.write) 

我想用if not os.path.exists(),但我需要的os.path.joint這個工作。使用open()與mode ='x'如上,我得到以下err消息:「FileExistsError:[Errno 17] File exists」

錯誤處理的路要走,還是有一個巧妙的把戲,我錯過了?

回答

0

我登上了以下解決方案:

filenames_ftp = ftp.nlst() 
filenames_loc = os.listdir("C:\\Financial Data\\") 
filenames = list(set(filenames_ftp) - set(filenames_loc)) 
相關問題