2010-01-03 14 views
5

Angesichts einer lokalen Verzeichnisstruktur von /foo/bar, und unter der Annahme, dass ein bestimmter Pfad genau eine Datei enthält (Dateiname und Inhalt spielt keine Rolle), was ist eine ziemlich schnelle Möglichkeit, den Dateinamen der einzelnen Datei (nicht den Dateiinhalt) zu bekommen?Schnelle Möglichkeit, den Dateinamen aus dem Verzeichnis zu lesen?

+1

Welche Alternativen haben Sie Benchmark? Es gibt nicht viele Möglichkeiten: "os" und "glob" sind die großen zwei. Was hast du aus dem Laufen von 'timeit' gelernt? Welche spezifische Frage haben Sie zu den Benchmark-Ergebnissen? –

+0

Ich meinte eher: "Angesichts der Tatsache, dass ich eine schnelle Lösung brauche, die das Ausführen eines vollwertigen Benchmarks verbietet, was ist ein ziemlich schneller Weg zu ..." Ich werde den Titel entsprechend bearbeiten, danke für das Aufzeigen dieser . – nikola

+0

@prometheus: Dein Kommentar macht noch weniger Sinn als die ursprüngliche Frage. Es gibt nur zwei Möglichkeiten. Was lässt dich denken, dass einer schneller sein wird als der andere? Da es nur zwei gibt, was hält dich davon ab, zweimal 'timeit' zu laufen? Ich weiß wirklich nicht, warum du das hier fragst. –

Antwort

13

erste Element der os.listdir()

import os 
os.listdir('/foo/bar')[0] 
+0

Danke, das macht den Job! – nikola

+0

heh ... ich hätte eigentlich eine Sekunde darüber nachdenken sollen :-p –

2

Nun weiß ich, dieser Code funktioniert ...

for file in os.listdir('.'): 
    #do something 
+0

Danke, Gimel hat es noch kürzer gemacht. – nikola

1

Sie auch glob können

import glob 
print glob.glob("/path/*")[0] 
Verwandte Themen