Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check if folder exist inside a directory if not create it using python

I use the below python script to check if a file exist on the root of my ftp server.

from ftplib import FTP 
ftp = FTP('ftp.hostname.com')
ftp.login('login', 'password')

folderName = 'foldername'

if folderName in ftp.nlst() :
    print 'YES'
else : print 'NO'

How can I modify the above script to look inside a specific folder instead of the root directory?

For example, I want to see if a folder name called foo exists inside the www directory.

The goal of my question, is to see if the folder foo exists inside the www directory, if so print cool! if not create a folder called foo inside www.

like image 835
mongotop Avatar asked Jan 14 '14 22:01

mongotop


People also ask

How do you check if folder exists in Python and if not create one?

import os path = '/Users/krunal/Desktop/code/database' # Check whether the specified path exists or not isExist = os. path. exists(path) if not isExist: # Create a new directory because it does not exist os. makedirs(path) print("The new directory is created!")

How do you check if a folder exists and if not create it?

You can use os. path. exists('<folder_path>') to check folder exists or not.

How do you check if a folder exists in a directory in Python?

os. path. isdir() method in Python is used to check whether the specified path is an existing directory or not. This method follows a symbolic link, which means if the specified path is a symbolic link pointing to a directory then the method will return True.


3 Answers

from ftplib import FTP 
ftp = FTP('ftp.hostname.com')
ftp.login('login', 'password')
where      = 'www'
folderName = 'foldername'

if folderName in ftp.nlst(where) :
    print 'YES'
else :
    print 'NO'

Just send the directory you want to see in as first argument of ftp.nlst()

like image 99
wtayyeb Avatar answered Oct 03 '22 01:10

wtayyeb


After the hint from Hans! I searched on google for those commandes and I found this link : http://docs.python.org/2/library/ftplib.html

from ftplib import FTP 

ftp = FTP('ftp.hostname.com')
ftp.login('login', 'passwrd')
ftp.cwd('www') # change into 'www' directory

if 'foo' in ftp.nlst() : #check if 'foo' exist inside 'www'
    print 'YES'
    ftp.cwd('foo')  # change into "foo" directory
    ftp.retrlines('LIST') #list directory contents

else : 
    print 'NO'
    ftp.mkd('foo') #Create a new directory called foo on the server.
    ftp.cwd('foo') # change into 'foo' directory
    ftp.retrlines('LIST') #list subdirectory contents

ftp.close() #close connection
like image 40
mongotop Avatar answered Oct 03 '22 01:10

mongotop


ftplib is a rather thin wrapper around the FTP protocol. You can look at http://en.wikipedia.org/wiki/List_of_FTP_commands to see what the FTP commands do.

Hint: look at CWD, LIST, MKD.

For LIST you will need ftp.retrlines and parse it to see if it is a directory.

like image 38
Hans Then Avatar answered Oct 03 '22 00:10

Hans Then