Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Functions not executing in Python [duplicate]

Tags:

python

I have a program that runs when the functions have not been defined. When I put code into a function, it does not execute the code it contains. Why? Some of the code is:

def new_directory():

    if not os.path.exists(current_sandbox):
        os.mkdir(current_sandbox)
like image 570
chrisg Avatar asked Apr 23 '26 13:04

chrisg


2 Answers

Problem 1 is that you define a function ("def" is an abbreviation of "define"), but you don't call it.

def new_directory(): # define the function
 if not os.path.exists(current_sandbox):  
     os.mkdir(current_sandbox)

new_directory() # call the function

Problem 2 (which hasn't hit you yet) is that you are using a global (current_sandbox) when you should use an argument -- in the latter case your function will be generally useful and even usefully callable from another module. Problem 3 is irregular indentation -- using an indent of 1 will cause anybody who has to read your code (including yourself) to go nuts. Stick to 4 and use spaces, not tabs.

def new_directory(dir_path):
    if not os.path.exists(dir_path):  
        os.mkdir(dir_path)

new_directory(current_sandbox)
# much later
new_directory(some_other_path)
like image 105
John Machin Avatar answered Apr 25 '26 03:04

John Machin


Your code is actually a definition of a new_directory function. It won't be executed unless you make a call to new_directory().

So, when you want to execute the code from your post, just add a function call like this:

def new_directory():

 if not os.path.exists(current_sandbox):
   os.mkdir(current_sandbox)

new_directory()

I am not sure if that's the behavior you expect to get.

like image 24
Alexei Sholik Avatar answered Apr 25 '26 01:04

Alexei Sholik



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!