剛學習了《python核心編程》的第十七章,ftp編程,寫了一個小指令碼下載ftp網站上的全部檔案,還沒學習多線程編程,後面要給加上多線程下載。
from ftplib import FTPimport reimport oshost = 'ftp.neu.edu.cn'dir_path = '/ebook/python'def get_filename(string): patt = re.compile(r'2011\s(.+)') filename = re.findall(patt, string)[0] return filename def main(): filenames = [] try: fp = FTP(host) except Exception: print "can not connect to ",host return print 'connect to ',host,' successfully' try: fp.login() except Exception: print 'login failed' return print 'login successfully' try: fp.cwd(dir_path) except Exception: print 'change to directory:',dir_path," failed" fp.quit() return print 'change to directory %s successfully' %(fp.pwd()) fp.retrlines('LIST',lambda x:filenames.append(get_filename(x))) """for filename in filenames: print filename return """ for filename in filenames: try: fp.retrbinary('RETR %s' %filename, open(filename,'wb').write) except Exception ,e: print e print '%s download successfully' % filename fp.quit() print 'all file download successfully'if __name__ == "__main__": main()