2010-01-03 10 views
5

Dada una estructura de directorio local /foo/bar, y suponiendo que una ruta determinada contiene exactamente un archivo (nombre de archivo y contenido no importa), ¿cuál es una forma razonablemente rápida de obtener el nombre de archivo único (NO el contenido del archivo)?¿Manera rápida de leer el nombre del archivo desde el directorio?

+1

¿Qué alternativas se referencia? No hay muchas opciones: 'os' y' glob' son los dos grandes. ¿Qué aprendiste al ejecutar 'timeit'? ¿Qué pregunta específica tienes sobre los resultados del benchmark? –

+0

Prefiero decir: "Dado que necesito una solución rápida que prohíba el ejercicio de ejecutar un punto de referencia en toda regla, ¿cuál es una manera razonablemente rápida de ..." Voy a editar el título en consecuencia, gracias por señalar esto . – nikola

+0

@prometheus: Tu comentario tiene aún menos sentido que la pregunta original. Solo hay dos opciones. ¿Qué te hace pensar que uno va a ser más rápido que otro? Como solo hay dos, ¿qué le impide ejecutar 'timeit' dos veces? No tengo muy claro por qué estás preguntando esto aquí. –

Respuesta

13

primero elemento de os.listdir()

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

¡Gracias, eso hace el trabajo! – nikola

+0

heh ... Debería haberlo pensado por un segundo :-p –

2

Bien sé que funciona este código ...

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

Gracias, gimel lo hizo aún más corto. – nikola

1

también se puede utilizar pegote

import glob 
print glob.glob("/path/*")[0] 
Cuestiones relacionadas