python - Why does this try/except/else function return None? -


i trying create directory. if name exists, appends "_1" directory name recursively.

this runs fine if directory not exist already. runs fine if directory exists (it creates directory+"_1" , returns same). however, if directory + "_1" exists, function creates directory+"_1_1" returns none.

import os  def recurs_mkdir(out_dir):     try:         os.mkdir(out_dir)     except oserror:         out_dir += "_1"         recurs_mkdir(out_dir)     else:         print "returning: %s" % out_dir         return out_dir  >>> print recurs_mkdir("existing_folder") returning: existing_folder_1 none 

why return none in case of exception?

edit: nneoneo's answer works if "exisiting_folder" exists, not behave if "existing_folder" , "existing_folder_1" exist. modified, function is

import os  def recurs_mkdir(out_dir):     try:         os.mkdir(out_dir)     except oserror:         out_dir += "_1"         recurs_mkdir(out_dir)         print "returning: %s" % out_dir         return out_dir     else:         print "returning: %s" % out_dir         return out_dir 

if "existing_folder" created:

>>> recurs_mkdir("existing_folder") returning: existing_folder_1 returning: existing_folder_1 existing_folder_1 

if "existing_folder" , "existing_folder_1" exist:

>>> recurs_mkdir("existing_folder") returning: existing_folder_1_1 returning: existing_folder_1_1 returning: existing_folder_1 existing_folder_1 

edit 2: answer nneoneo

import os  def recurs_mkdir(out_dir):     try:         os.mkdir(out_dir)     except oserror:         out_dir += "_1"         return recurs_mkdir(out_dir)     else:         print "returning: %s" % out_dir         return out_dir 

because no return statement invoked @ in case of exception, function returns default value of none (this same return value you'd if wrote bare return statement without return value).

add return statement except clause return whatever want.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -