Change directory on server before uploading files with ftplib in Python

user3551620 picture user3551620 · May 1, 2017 · Viewed 9k times · Source

I have this code, but I can't figure out how to change directory on the server before uploading files.

Can anyone help me out?

import ftplib
import os

server = 'enter your servername here'
username = 'root'
password = 'passowrd'
myFTP = ftplib.FTP(server, username, password)
myPath = r'C:\path_of_the_folder_goes_here'
def uploadThis(path):
    files = os.listdir(path)
    os.chdir(path)
    for f in files:
        if os.path.isfile(path + r'\{}'.format(f)):
            fh = open(f, 'rb')
            myFTP.storbinary('STOR %s' % f, fh)
            fh.close()
        elif os.path.isdir(path + r'\{}'.format(f)):
            myFTP.mkd(f)
            myFTP.cwd(f)
            uploadThis(path + r'\{}'.format(f))
    myFTP.cwd('..')
    os.chdir('..')
uploadThis(myPath)

Answer

Martin Prikryl picture Martin Prikryl · May 1, 2017

Use FTP.cwd method:

myFTP.cwd('/remote/path')

before you call

uploadThis(myPath)