Compte tenu d'une structure de répertoire locale de / foo / bar code>, et en supposant qu'un chemin donné contient exactement un fichier (le nom de fichier et le contenu n'a pas d'importance), quel est un moyen raisonnablement rapide d'obtenir le nom de fichier de ce fichier unique (pas le contenu du fichier)? P>
3 Réponses :
1er élément de os.listdir () code> < / a>
heh ... j'aurais dû y avoir réfléchi pour une seconde :-p
Eh bien, je sais que ce code fonctionne ...
for file in os.listdir('.'): #do something
Merci, Gimel le rendait encore plus court.
Vous pouvez également utiliser GLOB
import glob print glob.glob("/path/*")[0]
Quelles alternatives avez-vous indiqué? Il n'y a pas beaucoup de choix:
os code> et
glob code> sont les plus gros. Qu'avez-vous appris de l'exécution
Timeit code>? Quelle question spécifique avez-vous sur les résultats de référence?
Je préfère dire ", étant donné que j'ai besoin d'une solution rapide interdisant l'exercice de la gestion d'une référence à part entière, ce qui est un moyen raisonnablement rapide de ..." Je modifierai le titre en conséquence, merci d'avoir souligné cela.
@Pométheus: votre commentaire fait encore moins de sens que la question initiale. Il n'y a que deux choix. Qu'est-ce qui vous fait penser que l'on va être plus rapide qu'un autre? Puisqu'il n'y a que deux, qu'est-ce qui vous empêche d'exécuter
Timeiit code> deux fois? Je suis vraiment pas clair sur la raison pour laquelle vous le demandez ici.
Je n'ai jamais demandé une solution aspirée de manière approfondie que vous impliquez, mais pour un pointeur simple Comment obtenir ce nom de fichier, car la fonction OS.Listdir a glissé sous mon radar et la navigation sur la documentation OS.Path n'a pas donné de manière raisonnablement efficace de obtenir ce nom de fichier. J'espère que cela l'effacera. J'ai fait la modification, et je ne vois pas comment votre interrogation répétée de mon approche est d'un avantage pour le fil.