Tengo varias secuencias de comandos que toman como entrada un nombre de directorio, y mi programa crea archivos en esos directorios. Algunas veces quiero tomar el nombre de un directorio dado al programa y usarlo para hacer varios archivos en el directorio. Por ejemplo,¿Manera elegante de tomar el nombre del directorio en Python?
# directory name given by user via command-line
output_dir = "..." # obtained by OptParser, for example
my_filename = output_dir + '/' + os.path.basename(output_dir) + '.my_program_output'
# write stuff to my_filename
El problema es que si el usuario da un nombre de directorio con una barra al final, a continuación, os.path.basename devolverá la cadena vacía, lo cual no es lo que quiero. ¿Cuál es la forma más elegante de abordar estos problemas de barra oblicua en Python? Sé que puedo verificar manualmente la barra al final de output_dir y eliminarla si está allí, pero parece que debería haber una forma mejor. ¿Esta ahí?
Además, ¿está bien agregar manualmente '/' caracteres? P.ej. output_dir + '/' os.path.basename() o hay una forma más genérica de crear rutas?
Gracias.
"" "se romperá en Windows" "": barras Incluyendo romperán sólo si le da de comer como parte de un comando de ejemplo 'os.system()'; el analizador de comandos de DOS solo entiende las barras diagonales inversas. Alimentando a, por ejemplo, open() está bastante bien. Sin embargo, si alguna vez se debe mostrar la ruta construida a un usuario o administrador de Windows, prepárese para una gran cantidad de errores :-) –