comment obtenir le nom d'un fichier dans le répertoire à l'aide de python
Il y a un fichier mkv dans un dossier nommé "export
". Ce que je veux faire est de faire un script python qui récupère le nom du fichier à partir de ce dossier d'exportation.
Disons que le dossier est "C:\Users\UserName\Desktop\New_folder\export
".
Comment puis-je récupérer le nom?
J'ai essayé d'utiliser cette os.path.basename
et os.path.splitext
.. bien.. n'a pas fonctionné comme je l'espérais.
Pourquoi ne pas
Pouvez-vous coller votre code.
os.path.basename
travail? Pouvez-vous montrer un exemple de code dans lequel cela n'a pas fonctionné?Pouvez-vous coller votre code.
OriginalL'auteur Xonshiz | 2015-07-04
Vous devez vous connecter pour publier un commentaire.
os.path
implémente certaines fonctions utiles sur les chemins. Mais il n'a pas accès au contenu de la trajectoire. Pour cela, vous pouvez utiliseros.listdir
.La commande suivante vous donnera une liste du contenu de l'emplacement donné:
Maintenant, si vous voulez juste
.mkv
fichiers, vous pouvez utiliserfnmatch
(Ce module fournit un support pour shell Unix-les jokers de style) module pour obtenir vos noms de fichier attendus:Aussi comme @Padraic Cunningham mentionné comme l'une des plus pythonic façon de traiter avec les noms de fichiers vous pouvez utiliser
glob
module :si vous allez à l'utilisation de l'os.listdir,
if f.endswith(".mkv")
serait suffisantOuais il y a quelques moyens pour cette tâche, mais comme vous pouvez le voir dans docs.python.org/2/library/fnmatch.html et aussi car shell Unix-les jokers de style, je pense que son plus pythonic et plus vite que d'autres façons! ce que vous en pensez?
map(path.basename,iglob(pth+"*.mkv"))
sera plus rapide et plus efficace en terme de mémoire.endswith est également plus rapide
OriginalL'auteur Kasrâmvd
Je suppose que vous êtes essentiellement en demandant comment lister les fichiers dans un répertoire donné. Ce que vous voulez, c'est:
Si il y a plusieurs fichiers et que vous voulez le(s) qui ont un .mkv fin que vous pouvez faire:
OriginalL'auteur CrazyCasta
Vous pouvez utiliser glob:
path+"*.mkv"
correspond à tous les fichiers se terminant avec.mkv
.Pour obtenir juste le basenames vous pouvez utiliser une carte ou une liste comp avec iglob:
iglob retourne un itérateur de sorte que vous n'avez pas de générer une liste pour aucune raison.
OriginalL'auteur Padraic Cunningham
Si vous êtes à la recherche récursive de dossier de recherche, cette méthode vous aidera à obtenir le nom de fichier à l'aide de
os.walk
, vous pouvez également obtenir ces chemin d'accès du fichier et de répertoire à l'aide de ce code ci-dessous.OriginalL'auteur Prabhakar Radhakrishnan