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