Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ftplib, os, shutil, re
- host = "ftp.server.com"
- port = 21
- user = "username"
- password = "password"
- user = ""
- password = ""
- ftp = ftplib.FTP()
- ftp.connect(host,port)
- ftp.login(user,password)
- def output(out):
- return 0
- def copy_directory(directory="", depth=0,exceptions = None):
- if exceptions != None and len(exceptions) > 0:
- re_str = ("(" + "|".join(exceptions) + ")").lower()
- else:
- re_str = "^$"
- if exceptions == None:
- exceptions = []
- elif re.match(re_str,directory.lower()):
- return
- newdir = os.path.join(os.getcwd(),host)
- if(directory != ""):
- newdir = os.path.join(os.getcwd(),directory)
- if(os.path.exists(newdir)):
- shutil.rmtree(newdir)
- os.mkdir(newdir)
- os.chdir(newdir)
- files = []
- try:
- ftp.cwd(directory)
- except ftplib.error_perm:
- return
- try:
- files = ftp.nlst()
- except ftplib.error_perm:
- print((" "+(" |" * (depth))+"-No Files in Folder"))
- print(" "+(" |" * (depth)))
- if(len(files) == 0):
- print(" "+(" |" * (depth))+"-No Files in Folder")
- for f in files:
- if(f == "." or f == ".."):
- continue
- print(" "+(" |" * (depth))+"-"+f,"- (IGNORED)" if re.match(re_str,f.lower()) else "")
- if re.match(re_str,f.lower()):
- continue
- try:
- ftp.size(f)
- local_f = os.path.join(os.getcwd(),f)
- fh = open(local_f, "wb")
- ftp.retrbinary("RETR "+f, fh.write, 8*1024)
- fh.close()
- except ftplib.error_perm as err:
- if(err.args[0].count("553") > 0):
- continue
- copy_directory(f,depth+1,exceptions)
- print(" "+(" |" * (depth-1)))
- ftp.cwd("..")
- os.chdir("..")
- copy_directory()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement