Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/03/2014, 21:33
Avatar de Restart
Restart
 
Fecha de Ingreso: marzo-2009
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Lectura de lineas alternadas de un archivo

Cita:
Iniciado por Principe_Azul Ver Mensaje
Hola, no se realmente para que necesitás un código que haga eso, pero lo he hecho según entiendo tu post.
Este código creo que hace justamente lo que necesitás:


Código Python:
Ver original
  1. Archivo = open("text.txt", "r")
  2. Info = Archivo.read()
  3. Archivo.close()
  4.  
  5. class Escritura:
  6.     def __init__(self):
  7.         self.CuentaNums = 0
  8.         self.Lista = []
  9.         for Linea in Info.splitlines():
  10.             if Linea[6:7] not in self.Lista:
  11.                 self.Lista.append(Linea[6:7])
  12.         self.CrearArchivos()
  13.     def CrearArchivos(self):
  14.         if self.Lista != []:
  15.             Letra = self.Lista[0]
  16.             Archivo = open("text_" + Letra + ".txt", "w")
  17.             self.Lista.remove(Letra)
  18.             for Linea in Info.splitlines():
  19.                 if Linea[6:7] == Letra:
  20.                     Archivo.write(Linea + "\n")
  21.             Archivo.close()
  22.             self.CrearArchivos()
  23.         else:
  24.             print "Archivos creados con exito!!"
  25.             print "Presiona ENTER para cerrar la consola"
  26.  
  27. CrearArchivos = Escritura()
  28. CrearArchivos
  29.  
  30. raw_input()

El funcionamiento es practicamente simple, ejecutás el programa y el mismo te crea los archivos necesarios con el contenido de ellos.
Por ejemplo, en el archivo text.txt tenemos esto:

linea_a
linea_b
linea_a2
linea_b2
linea_a3
linea_b3
linea_c4
linea_f8
linea_a1

y el programa creará 4 archivos en formato .txt, el nombre de ellos será text_ y la letra que sigue del _ (guión bajo):

text_a.txt
text_b.txt
text_c.txt
text_f.txt

por ejemplo archivo text_a.txt contendría esto dentro de él:

linea_a
linea_a2
linea_a3
linea_a1

creo que eso es justamente lo que necesitás.
Te pregunté recién para que necesitarías un código así ya que este código no va a funcionar si le haces modificaciones al archivo text.txt, en realidad el código que te puse recién es sólo un ejemplo de cómo podrías hacer el script para lo que necesitás.
Que andés bien!! Suerte!

PD: Tanto el archivo del programa que te hice recién como el archivo text.txt deben estar en el mismo directorio/ruta.
se agradece enormemente tu ayuda pero me entendiste mal, lo de hacer lineas "a y b" era un ejemplo, pero en realidad son dos archivos los que tienen que crearse con las lineas alternadas, por ejemplo si tengo un texto con estas lineas:

Texto original:

Linea1
Linea2
Linea3
Linea4
Linea5
Linea6
Linea7
Linea8

etc etc

deben resultar dos ficheros

fichero 1 con el contenido:

Linea1
Linea3
Linea5
Linea7

fichero 2 con el contenido:
Linea2
Linea4
Linea6
Linea8