[Tutor] Another ? on large text files

Hugo González Monteverde hugonz at h-lab.net
Wed Dec 8 23:26:06 CET 2004

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:

		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()
			if dataline.startswith(
			"PLOT XY METHOD:\"Power"):


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...



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
> .......
> The footer continues and then runs into the header of the next set of
> data (no space between them)
> Thanks,
> Ara
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor

More information about the Tutor mailing list