Saltar al contenido

cómo obtener el nombre de un archivo en el directorio usando Python

Solución:

os.path implementa algunas funciones útiles en nombres de ruta. Pero no tiene acceso al contenido de la ruta. Para ese propósito, puede usar os.listdir.

El siguiente comando le dará una lista del contenido de la ruta dada:

os.listdir("C:UsersUserNameDesktopNew_folderexport")

Ahora, si solo quieres .mkv archivos que puedes usar fnmatch(Este módulo proporciona soporte para comodines de estilo shell de Unix) para obtener los nombres de archivo esperados:

import fnmatch
import os

print([f for f in os.listdir("C:UsersUserNameDesktopNew_folderexport") if fnmatch.fnmatch(f, '*.mkv')])

También como @Padraic Cunningham mencionó como una forma más pitónica de tratar con nombres de archivos que puede usar glob módulo:

map(path.basename,glob.iglob(pth+"*.mkv"))

Supongo que básicamente estás preguntando cómo enumerar archivos en un directorio determinado. Lo que quieres es:

import os
print os.listdir("""C:UsersUserNameDesktopNew_folderexport""")

Si hay varios archivos y desea el (los) que tienen un final .mkv, puede hacer:

import os
files = os.listdir("""C:UsersUserNameDesktopNew_folderexport""")
mkv_files = [_ for _ in files if _[-4:] == ".mkv"]
print mkv_files

Puedes usar glob:

from glob import glob

pth ="C:/Users/UserName/Desktop/New_folder/export/"
print(glob(pth+"*.mkv"))

path+"*.mkv" coincidirá con todos los archivos que terminan con .mkv.

Para obtener los nombres de base, puede usar map o una lista comp con iglob:

from glob import iglob

print(list(map(path.basename,iglob(pth+"*.mkv"))))


print([path.basename(f) for f in  iglob(pth+"*.mkv")])

iglob devuelve un iterador para que no cree una lista sin motivo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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