2012-07-14 16 views
5
try: 
    directoryListing = os.listdir(inputDirectory) 
    #other code goes here, it iterates through the list of files in the directory 

except WindowsError as winErr: 
    print("Directory error: " + str((winErr))) 

Esto funciona bien, y he probado que no se ahogue y muera cuando el directorio no existe, pero estaba leyendo en un libro de Python que debería estar usando "con "al abrir archivos. ¿Hay una manera preferida de hacer lo que estoy haciendo?Manera segura de leer directorio en Python

Respuesta

4

Estás perfectamente bien. La función os.listdir no abre archivos, por lo que finalmente está bien. Utilizaría la declaración with al leer un archivo de texto o similar.

un ejemplo de una sentencia with:

with open('yourtextfile.txt') as file: #this is like file=open('yourtextfile.txt') 
    lines=file.readlines()     #read all the lines in the file 
             #when the code executed in the with statement is done, the file is automatically closed, which is why most people use this (no need for .close()). 
+1

Ok! Gracias. Soy nuevo en Python, y estoy tratando de aprender la manera correcta de hacer las cosas, en lugar de "hacerlo funcionar" –

+0

no hay problema, agregaré un ejemplo de una declaración con solo como referencia. –

+0

Si está de humor para proporcionar más conocimiento, ¿qué significa "con"? ¿Simplemente prueba un montón de cosas que pueden salir mal al abrir/leer desde un archivo y agruparlo en un error? Corrupción, no ahí, etc. –

2

Lo que estás haciendo está bien. Con de hecho es la forma preferida para abrir archivos, pero listdir es perfectamente aceptable solo por leer el directorio.

+0

Gracias por su respuesta! –

+0

No hay problema. Espero que disfrutes tu aventura con Python – Wulfram

+0

Sí, me está gustando mucho hasta ahora. He hecho principalmente C++ y Java hasta ahora. –

Cuestiones relacionadas