def find_header(self, infile):
cpus = []<EOL>for line in infile:  <EOL><INDENT>if not self.is_header_line(line):<EOL><INDENT>continue<EOL><DEDENT>cpu_header = line.split()<EOL>for cpu_h in cpu_header[<NUM_LIT:2>:]:<EOL><INDENT>if not cpu_h.startswith('<STR_LIT>'):<EOL><INDENT>cpus = []  <EOL>break<EOL><DEDENT>else:<EOL><INDENT>cpus.append(cpu_h)<EOL><DEDENT><DEDENT>if len(cpus) > <NUM_LIT:0>:  <EOL><INDENT>break<EOL><DEDENT><DEDENT>return cpus<EOL>
Parses the file and tries to find the header line. The header line has format:

  2014-10-29 00:28:42.15161        CPU0   CPU1   CPU2   CPU3  ...

So should always have CPU# for each core. This function verifies a good header and
returns the list of CPUs that exist from the header.

:param infile: The opened file in read mode to find the header.
:return cpus: A list of the core names so in this example ['CPU0', 'CPU1', ...]