Perdí la mayor parte de mi mañana al no poder resolver este simple problema. El uso de pitón, quiero analizar archivos de datos que se ven así:¿Cómo puedo dividir un archivo de texto basado en bloques de comentarios en Python?
# This is an example comment line, it starts with a '#' character.
# There can be a variable number of comments between each data set.
# Comments "go with" the data set that comes after them.
# The first data set starts on the next line:
0.0 1.0
1.0 2.0
2.0 3.0
3.0 4.0
# Data sets are followed by variable amounts of white space.
# The second data set starts after this comment
5.0 6.0
6.0 7.0
# One more data set.
7.0 8.0
8.0 9.0
El código Python Quiero sería analizar el ejemplo anterior en las tres "bloques", almacenándolos como elementos de una lista. Los bloques de códigos individuales podrían almacenarse ellos mismos como listas de líneas, con o sin las líneas de comentario, lo que sea. Una forma handraulic es hacer esto:
#! /usr/bin/env python
# Read in data, seperate into rows_alldata
f=open("example")
rows = f.read().split('\n')
f.close()
# Do you haz teh codez?
datasets=[]
datasets.append(rows[0:8])
datasets.append(rows[9:13])
datasets.append(rows[15:18])
Busco una solución más general que soporta un número variable y longitudes de conjuntos de datos. He intentado varias catástrofes creadas a partir de bucles que no son pitónicos. Creo que es mejor no complicar mi pregunta con ellos; esto es trabajo y no "tarea".
Será un conjunto de datos siempre se guarda como una cadena? –
Los datos son texto sin procesar, pero al final lo analizaré en carrozas. –
¿Sabes qué? Al verlo nuevamente, creo que en el ejemplo que doy sería más fácil dividirlo en función de los bloques de espacios en blanco entre los conjuntos de datos. –