Crear ruta de archivo a partir de variables

Estoy buscando algunos consejos sobre la mejor manera de generar una ruta de archivo usando variables, actualmente mi código es similar al siguiente:

path = /my/root/directory for x in list_of_vars: if os.path.isdir(path + '/' + x): # line A print(x + ' exists.') else: os.mkdir(path + '/' + x) # line B print(x + ' created.') 

Para las líneas A y B, como se muestra arriba, ¿hay una mejor manera de crear una ruta de archivo ya que esto se hará más largo cuando profundice en el árbol de directorios?

Preveo un método incorporado existente que se utilizará de la siguiente manera:

 create_path(path, 'in', 'here') 

produciendo una ruta del formulario /my/root/directory/in/here

Si no hay una función incorporada, me escribiré una.

Gracias por cualquier entrada

Sí, hay una función incorporada: os.path.join .

 >>> import os.path >>> os.path.join('/my/root/directory', 'in', 'here') '/my/root/directory/in/here' 

Desea la función path.join () desde os.path.

 >>> from os import path >>> path.join('foo', 'bar') 'foo/bar' 

Esto construye su ruta con os.sep (en lugar de la '/' menos portátil) y lo hace de manera más eficiente (en general) que usando + .

Sin embargo, esto no creará realmente el camino. Para eso, tienes que hacer algo como lo que haces en tu pregunta. Podrías escribir algo como:

 start_path = '/my/root/directory' final_path = os.join(start_path, *list_of_vars) if not os.path.isdir(final_path): os.makedirs (final_path)