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.