On Sep 29, 1:43 am, kou...@hotmail.com wrote:
If I have a text file that is delimited by spaces, how do I import it
and get to comma delimited? Here is a row of data from the text file:
1 1 10:55:14 2 65 8.5
1.4+1.1 2.5 Class-2 0
I tried a few examples from the group and it didn't work, since the
file also has a header row and a row of seperators ( -------). The
lengths of each row is something like 130, so there are extra spaces
after the last value as well. I have tried joining and other things,
but I couldn't figure out how to get the values to come together.
Thanks.
Kou
It would help enormously if you could show us UNAMBIGUOUSLY what is in
say the first 3 lines after the headings and separators -- do this:
print repr(open("thefile", "rb").read()[:400])
The other thing you need is to know enough about the file format to
show us what is the CSV output that you require from the sample input
-- we don't have crystal balls, and are likely to make half-donkeyed
guesses, like these:
If the spaces are really tabs, use line.split('\t')
Otherwise: the file has fixed column widths, and any use of line.split
will mangle it.
The clumsy way to handle this is to count column positions, and write
something ugly like:
field1 = line[0:8]
field2 = line[8:20]
etc
"a row of seperators ( -------)" sounds suspiciously like the "column
aligned" format that can be produced by running a SQL query on a SQL
Server database using MS's "Query Analyser". It looks like this:
RecordType ID1 ID2 Description
----------- -------------------- ----------- ----------------------
1 12345678 123456 Widget
4 87654321 654321 Gizmoid
etc
Does your file look something like that? If so, then all you have to
do is leverage off the fact that the second line has one-space gaps
between each bunch of dashes, and you can write a little module that
will read any file like that, just as though it were a CSV file.
Over to you ....
Cheers,
John