Skip to content

Instantly share code, notes, and snippets.

@nickwhite917
Created February 15, 2017 18:50
Show Gist options
  • Select an option

  • Save nickwhite917/c34b344db15b9b6b58fe9cf6818adbd2 to your computer and use it in GitHub Desktop.

Select an option

Save nickwhite917/c34b344db15b9b6b58fe9cf6818adbd2 to your computer and use it in GitHub Desktop.
Add sub-directories to FTP site with Python
import sys
from ftplib import FTP
def initialize_ftp_connection(ftp_servers, server_name):
try:
conf = ftp_servers[server_name]
ftp_conn = FTP(conf[0])
ftp_conn.login(user=conf[1], passwd=conf[2])
ftp_conn.cwd(conf[3])
return ftp_conn
except Exception as e:
print(str(e))
exit()
def mod_folder(connection, folder_name, base_path, delete = False):
if connection is None:
return None
connection.cwd(base_path)
sub_folders = connection.nlst()
for folder in sub_folders:
try:
connection.cwd(folder)
if delete:
connection.rmd(folder_name)
else:
connection.mkd(folder_name)
connection.cwd("..")
except Exception as e:
print(str(e))
def main(argv):
if len(argv) < 2:
return -1
file_name = str(argv[0])
var = str(argv[1]).upper()
if str(argv[1]).upper() in ["ADD", "NEW", "MAKE", "MKDIR"]:
delete_flag = False
elif str(argv[1]).upper() in ["RM", "DEL", "DELETE", "REM", "REMOVE"]:
delete_flag = True
else:
print("Erorr. You must specify a delete or add flag in position 2. Use ADD, or DEL.")
quit()
ftp_servers = {
"Clarcor": ["ftp_server", "my_username", "my_password", "/startingfolder"]
, "Data": ["server 2", "ftpusername", "pass123456", "/anotherdir"]
, "Archive": ["another_server", "ftpuser", "coolpass", "/anotherdir"]
}
ftp_connection = initialize_ftp_connection(ftp_servers, "server_2")
mod_folder(ftp_connection, file_name, "/anotherdir", delete=delete_flag)
if __name__ == "__main__":
main(sys.argv[1:])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment