[pyar] Listas/desordenar

Ivan Alejandro ivanalejandro0 en gmail.com
Mie Jun 30 00:10:32 ART 2010


2010/6/28 Martin Cerdeira <martincerdeira en gmail.com>:
> 2010/6/27 Esteban Ordano <esteban en ordano.com.ar>
>>
>> Yo en esos casos prefiero usar "endswith", me parece más textual...
>> Saludos,
>> Esteban
>>
>
> Si, sabés que estuve a punto de usar endswith, jeje.
>
> Me gustó mucho lo de testear el contenido del archivo, voy a investigar por
> ese lado.
> Muchas gracias a todos.
>
> -------------------------------------
> Martín Cerdeira - Software Developer
> [email] martincerdeira en gmail.com
> [web] http://www.codmacs.blogspot.com/
>

Hola Martin, estuve probando con este temita y me termine haciendo una
clase 'MusicCollection' con Threads y todo =D (si a alguien le
interesa avisen)
Te comento algunas cosas con las que me tope, por ahi te sirven (o a
alguien mas).

1) Use un try/except, ya que si tengo algun problema de permiso no
dejaria de funcionar (a mi me paso con una carpeta de musica de otro
usuario, uso gnu/linux; creo que en win$ tb puede pasar)
2) Al completar el nombre del archivo use os.path.join() ya que es
multiplataforma y asi me olvido de pensar si es '/' (como en
gnu/linux) o '\'(como en window$).
3) Use splitext ya que desp podes ver si esa extension esta en una
lista y asi contemplar varios tipos de archivos al mismo tiempo.
Tambien agregue 'lower()' asi si tengo un '.MP3' tb lo agrega.

Te dejo un pedacito de codigo de ejemplo:

def scanDir(spath):
  try:
    for item in os.listdir(spath):
      fullname = os.path.join(spath, item)
      if os.path.isfile(fullname):
        if os.path.splitext(item)[1].lower() in ['.mp3', '.ogg', '.ac3']:
          musicFilesList.append(fullname)
      else:
        self.scanDir(fullname)
  except OSError:
    print "OSError exception, quizas se debe a problema de permisos en
algun archivo o carpeta"

Saludos

-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments



More information about the pyar mailing list