Presumably, given that you have quotes around at least one of the values, it's possible for spaces to appear within a value. So, you can't just split().
You can parse it as a funky dialect of CSV, where the delimiter is a space, and initial whitespace is skipped:
with open('textfile') as f:
rows = list(csv.reader(f, delimiter=' ', skipinitialspace=True)
That will automatically handle the quotes for you and everything.
However, in at least some cases, columnar data like this can have values that aren't separated at all, like this:
date close volume open high low
12:21 82.94 "14,748,136" 83.37 83.4 82.73
12:22 93213.12"15,222,139" 93201.1493333.3390213.94
If so, then you can only parse it by slicing the lines at the appropriate column positions. If you're lucky, you can use the headers for this; otherwise, you'll need to specify them manually. I'll assume you're unlucky, so:
columns = 0, 7, 15, 31, 39, 47, None
def columnize(line):
return [line[columns[i]:columns[i+1]].rstrip() for i in range(len(columns)-1)]
with open('textfile') as f:
rows = map(columnize, f)