Necesito extraer el nombre del directorio principal de una ruta determinada. Esto es lo que parece:
c:\stuff\directory_i_need\subdir\file
Estoy modificando el contenido del "archivo" con algo que use el directory_i_need
nombre (no la ruta). He creado una función que me dará una lista de todos los archivos, y luego ...
for path in file_list:
#directory_name = os.path.dirname(path) # this is not what I need, that's why it is commented
directories, files = path.split('\\')
line_replace_add_directory = line_replace + directories
# this is what I want to add in the text, with the directory name at the end
# of the line.
¿Cómo puedo hacer eso?
Respuestas:
Y puede continuar haciendo esto tantas veces como sea necesario ...
Editar: desde os.path , puede usar os.path.split u os.path.basename:
fuente
En Python 3.4 puede usar el módulo pathlib :
fuente
Todo lo que necesitas es
parent
parte si lo usaspathlib
.Saldrá:
En caso de que necesite todas las partes (ya cubiertas en otras respuestas) use
parts
:Entonces obtendrás una lista:
Ahorra tono de tiempo.
fuente
Primero, vea si tiene
splitunc()
una función disponible dentroos.path
. El primer elemento devuelto debe ser lo que desea ... pero estoy en Linux y no tengo esta función cuando importoos
e intento usarlo.De lo contrario, una forma semi fea que hace el trabajo es usar:
que muestra la recuperación del directorio justo arriba del archivo y el directorio justo arriba de eso.
fuente
Esto es lo que hice para extraer la parte del directorio:
Gracias por tu ayuda.
fuente
Esto también debería hacer el truco.
fuente
Tienes que poner la ruta completa como un parámetro para os.path.split. Ver los documentos . No funciona como una cadena dividida.
fuente