2010-01-03 10 views
5

Biorąc pod uwagę lokalną strukturę katalogów /foo/bar i zakładając, że dana ścieżka zawiera dokładnie jeden plik (nazwa pliku i treść nie ma znaczenia), jaki jest stosunkowo szybki sposób na uzyskanie nazwy pliku tego pojedynczego pliku (NIE treści pliku)?Szybki sposób na odczytanie nazwy pliku z katalogu?

+1

Jakie alternatywy skończyłeś odniesienia? Nie ma zbyt wielu możliwości wyboru: "os" i "glob" są tymi dwoma. Czego nauczyłeś się z uruchamiania 'timeit'? Jakie masz pytanie na temat wyników testu porównawczego? –

+0

Miałem na myśli: "Biorąc pod uwagę, że potrzebuję szybkiego rozwiązania uniemożliwiającego wykonanie pełnego testu porównawczego, co jest dość szybkim sposobem na ..." Będę edytować tytuł odpowiednio, dziękuję za wskazanie tego . – nikola

+0

@prometheus: Twój komentarz ma jeszcze mniej sensu niż oryginalne pytanie. Istnieją tylko dwie możliwości. Co sprawia, że ​​myślisz, że jeden będzie szybszy od drugiego? Ponieważ są tylko dwa, co powstrzymuje przed dwukrotnym uruchomieniem 'timeit'? Naprawdę nie wiem, dlaczego pytasz o to tutaj. –

Odpowiedz

13

1-ta elementem os.listdir()

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

Dzięki, to działa! – nikola

+0

heh ... Powinienem był o tym pomyśleć przez chwilę :-p –

2

Dobrze znam ten kod działa ...

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

Dzięki, gimel jeszcze krócej. – nikola

1

można również użyć glob

import glob 
print glob.glob("/path/*")[0] 
Powiązane problemy