Functions not executing in Python [duplicate]
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)
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)
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.
def new_directory():
if not os.path.exists(current_sandbox):
os.mkdir(current_sandbox)
new_directory()
精彩评论