Foros del Web » Programando para Internet » Python »

Practicando con os.listdir (listar directorios)

Estas en el tema de Practicando con os.listdir (listar directorios) en el foro de Python en Foros del Web. Hola a todos, sigo tratando de aprender. Un código como: Código: import os f=open("fichero.txt",'w') dirname="C:\\windows" mitexto = os.listdir(dirname) f.write(str(mitexto)) Genera un fichero de nombre fichero.txt ...
  #1 (permalink)  
Antiguo 08/09/2012, 08:48
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 14 años, 10 meses
Puntos: 15
Practicando con os.listdir (listar directorios)

Hola a todos, sigo tratando de aprender.

Un código como:
Código:
import os
f=open("fichero.txt",'w')
dirname="C:\\windows"
mitexto = os.listdir(dirname)
f.write(str(mitexto))
Genera un fichero de nombre fichero.txt con el listado de los directorios y archivos de C:\Windows.

Como el resultado es una lista aparecen los elementos separados por coma.

Quiero que cada uno aparezca en línea diferente.

Se me ocurre algo del tipo:
Código:
import os
f=open("fichero.txt",'w')
dirname="C:\\windows"
mitexto = os.listdir(dirname)

for elemento in mitexto:
    print elemento,"\n"
    f.write(str(elemento))
    f.write("\n")

raw_input("Pulsa una tecla")
la línea print elemento la uso solo para verificar en pantalla si funciona o no, pero no encuentro la forma de armar el f.write para que me respete el salto de línea

he probado con
f.write(elemento,"\n")

y tampoco funciona, o sea si dejo ese for ya no me genera el archivo de texto.

Tengo que concatenar de alguna otra manera? o convertir todo a STR?

  #2 (permalink)  
Antiguo 08/09/2012, 09:59
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Practicando con os.listdir (listar directorios)

Código Python:
Ver original
  1. import os
  2.  
  3. dirname = "C:\\Windows"
  4. mitexto = os.listdir(dirname)
  5.  
  6. f = open("fichero.txt", 'w')
  7. for elemento in mitexto:
  8.     print elemento
  9.     f.write(elemento)
  10.     f.write("\r\n")
  11. f.close()
  12.  
  13. raw_input("Pulsa enter")
Voy a suponer un par de cosas como que estas usando windows y para abrir fichero.txt estas usando notepad o bloc de notas.

Si es así es por que notepad no interpreta otro tipo de enter que no sean los de windows "\r\n".
  #3 (permalink)  
Antiguo 08/09/2012, 11:25
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 14 años, 10 meses
Puntos: 15
Respuesta: Practicando con os.listdir (listar directorios)

Cita:
Iniciado por razpeitia Ver Mensaje
Voy a suponer un par de cosas como que estas usando windows y para abrir fichero.txt estas usando notepad o bloc de notas.

Si es así es por que notepad no interpreta otro tipo de enter que no sean los de windows "\r\n".
Si señor!!

Si, uso Windows, pero probé con tu solución y aún quitando el \r igual funciona no hay problema.

Por lo que veo de tu solución yo cometía el error de no cerrar el archivo, tal vez en las pruebas anteriores quedaba abierto y por eso no escribía datos.

Y veo también que resuelves con 2 entradas f.write en lugar de una.

Hice algunas pruebas y también funciona con una sola línea del tipo

f.write(elemento + "\r\n")

Gracias como siempre !!!

Etiquetas: lista, nombre, practicando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:40.