[Python] Listar Archivos Carpeta

Iniciado por ovichan, 11 Agosto 2013, 22:46 PM

0 Miembros y 1 Visitante están viendo este tema.

ovichan

Bueno... hace poco y a modo de hobby me puse a aprender este lenguaje, y aunque soy un mega noob en esto me permito postear un código para quien quiera criticarlo positiva o negativamente... asi podré seguir mejorando.

Este codigo permite listar los archivos de una carpeta que este en la misma ruta que el script, y lo guarda en un txt. He añadido y no he quitado, un parametro simple de control de ejecucion, a modo de depuracion... aunque podia haber hecho algun try... pero me gustan las ventanitas jiji

Código (python) [Seleccionar]
#-------------------------------------------------------------------------------
# Name:        Overdrive
# Purpose:     Listar archivos directorio en un txt
#
# Author:      Overdrive
#
# Created:     10/08/2013
# Copyright:   (c) Overdrive 2013
# Licence:     Free
#-------------------------------------------------------------------------------
#import fnmatch
import os
from tkinter import messagebox
import tkinter

#Creamos una clase para la ventana de control depuración
class Msgbox(object):

   #""" Constructor """
   def __init__(self, text):
       self.text=text
       window = tkinter.Tk()
       window.wm_withdraw()

   def msg(self):
       messagebox.showinfo("Ventana de depuración", self.text)

def escribir(name):

   #Creamos el objeto del archivo de texto
   fd = os.open( name, os.O_RDWR|os.O_CREAT )
   mi_archivo=os.fdopen(fd,"r+")

   #Grabamos cada archivo del directorio en el txt, exceptuando el script
   for file in os.listdir('.'):
       if file[-2:] != 'py' and file[-3:] != 'txt':
           mi_archivo.write(str(file)+"\n")

   #Cerramos el archivo creado
   mi_archivo.close()

def main():
   #Comprobamos si existe .txt y sino lo creamos

   if os.path.isfile(str(os.curdir)+"\lista.txt")==False:
       ventana=Msgbox("No existe el fichero.")
       ventana.msg()
       escribir("lista.txt")
   else:
       ventana=Msgbox("Si existe el fichero.")
       ventana.msg()
       os.remove('lista.txt')
       escribir("lista.txt")

main()

0x5d

Hola, buen día.

Viendo tu código me llamó la atención que hayas usado el mismo os para escribir el archivo, no está mal, pero es poco usual. De todas formas si realizas otro código y no usas la librería os, no la importes solo para escribir o leer un archivo, solo usa open() :D

Saludos !
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !

ovichan

Era por probar cosas nuevas ^^, pero imagino que sera mejor como comentas.