Hi Ara,

I'd go something like this:

filep = open("myfile")
in_data = False
output_files = ["file1.txt", "file2.txt" ..... ]


for i in output_files: while True: dataline = filep.readline() if not dataline: break

                if not in_data:
                        if dataline.startswith("CERIUS Grapher File"):
                        ofilep = open(i,"w")
                        #say there are 5 more lines in header
                        for i in range(6): filep.readline()
                        in_data=True
                        continue
                else:
                        if dataline.startswith(
                        "PLOT XY METHOD:\"Power"):
                                ofilep.close()
                                break
                        else:
                                ofilep.write(filep.readline())
                        

                        
                

I basically detect start of header and start of footer, and intepret thus if I'm inside a bunch of data. This is very fragile to malformed input and will likely block or lose data if the file is not strictly set. But it should work...

Hugo




Kooser, Ara S wrote:
I have a large file (4.1 MB, 2600 pgs) of simulated power spectrums. The
problem is that there are 6 separated files all combined into this large
file. I know how to read the file in and then remove the header
information but how would I go about separating the 6 sections into
separate files?

The program I have so far reads in the data and then removes the header
and footer information (most likely in a very inefficient fashion).

The data looks something like this and I just want the numbers.


CERIUS Grapher File ! Start of definition for XY graph Power Spectrum component XX A^4/ps^2 v1

PLOT XY DATA: "Power Spectrum component XX A^4/ps^2" 1

0.0000000E+00 3.1251088E-04 ..<a bunch of stuff)............................ 3333.167 2.2011892E-07

PLOT XY METHOD: "Power Spectrum component YY A^4/ps^2" 1

COLOUR RED .......
The footer continues and then runs into the header of the next set of
data (no space between them)


Thanks,
Ara




_______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor

_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to