Obtenga el nombre de archivo de la ruta sin extensión usando Python

Obtener un nombre de archivo de Python usando una ruta es un proceso complejo, no por la expresión regular que necesitamos usar para separar el nombre de archivo de la ruta, sino por los diferentes tipos de separadores que se usan en las rutas de archivos en diferentes sistemas operativos. 

Por ejemplo, los sistemas basados ​​en UNIX como Linux o Mac OS usan «/» (barra diagonal) como separadores del directorio, mientras que Windows usa «\» (barra diagonal inversa) para separar los directorios dentro de la ruta. Entonces, para evitar todos estos problemas, usaríamos un paquete incorporado en Python .

Método 1: Obtener el nombre de archivo de la ruta sin extensión split() 

La función split() de Python divide el texto dado en una lista de strings usando el separador definido y devuelve una lista de strings que han sido divididas por el separador proporcionado.

Python3

import os
path = 'D:\home\Riot Games\VALORANT\live\VALORANT.exe'
print(os.path.basename(path).split('.')[0])

Producción:

VALORANT

Método 2: obtenga el nombre de archivo de la ruta sin extensión usando Path.stem

El paquete Python Pathlib ofrece una serie de clases que describen las rutas del sistema de archivos con una semántica adecuada para muchos sistemas operativos. Los módulos de utilidad estándar para Python incluyen este módulo. Aunque  stem es uno de los atributos de utilidad que hace posible recuperar el nombre de archivo de un enlace sin extensión.

Python3

import pathlib
 
path = 'D:\home\Riot Games\VALORANT\live\VALORANT.exe'
name = pathlib.Path(path).stem
 
print(name)

Producción:

VALORANT

Método 3: Obtenga el nombre de archivo de la ruta sin extensión usando rpartition()

Similar a cómo operan str.partition() y str.split , rpartition(). Solo divide una string una vez, y eso también en la dirección opuesta, en lugar de dividirla cada vez desde el lado izquierdo (Desde el lado derecho).

Python3

path = 'D:\home\Riot Games\VALORANT\live\VALORANT.exe'
print(path.rpartition('.')[0])

Producción:

D:\home\Riot Games\VALORANT\live\VALORANT

Método 4: Obtenga el nombre de archivo de la ruta sin extensión usando rfind()

En primer lugar usaríamos el módulo ntpath . En segundo lugar, extraeríamos el nombre base del archivo de la ruta y lo agregaríamos a una array separada. El código para el mismo dice así. Luego, tomaríamos la array generada y encontraríamos la última aparición de «.» carácter en la string. Recuerde encontrar solo la instancia de «.» en lugar de la última aparición puede crear problemas si el nombre del archivo en sí contiene «.». Encontraríamos ese índice usando rfind y luego finalmente dividiríamos la parte de la string antes del índice para obtener el nombre del archivo. El código se parece a esto. Nuevamente, puede almacenar esos nombres de archivo en una lista y usarlos en otro lugar, pero aquí decidimos imprimirlos en la pantalla de manera simple.

Python3

# import module
import ntpath
 
# used path style of both the UNIX
# and Windows os to show it works on both.
paths = [
    "E:\Programming Source Codes\Python\sample.py",
    "D:\home\Riot Games\VALORANT\live\VALORANT.exe"]
 
# empty array to store file basenames
filenames = []
 
for path in paths:
   
    # used basename method to get the filename
    filenames.append(ntpath.basename(path))
 
# get names from the list
for name in filenames:
   
    # finding the index where
    # the last "." occurs
    k = name.rfind(".")
     
    # printing the filename
    print(name[:k])

Producción:

Publicación traducida automáticamente

Artículo escrito por saikatsahana91 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *