2016-08-16 57 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))