Convert a space delimited file to comma separated values file in python
replace your first bit with this. it's not super pretty but it will give you a csv format.
with open('coord') as infile, open('coordv', 'w') as outfile:
for line in infile:
outfile.write(" ".join(line.split()).replace(' ', ','))
outfile.write(",") # trailing comma shouldn't matter
if you want the outfile to have everything on different lines you could add
outfile.write("\n")
at the end of the for loop, but i dont think your code that follows this will work with it like that.
You can use python pandas, I have written your data to data.csv
:
import pandas as pd
>>> df = pd.read_csv('data.csv',sep='\s+',header=None)
>>> df
0 1 2 3 4 5
0 1 C 6 0.000000 1.342650 0
1 2 C 6 0.000000 -1.342650 0
2 3 C 6 2.325539 2.685301 0
3 4 C 6 2.325539 -2.685301 0
4 5 C 6 4.651077 1.342650 0
5 6 C 6 4.651077 -1.342650 0
...
The great thing about this is to access the underlying numpy array you can use df.values
:
>>> type(df.values)
<type 'numpy.ndarray'>
To save the data frame with comma delimiters:
>>> df.to_csv('data_out.csv',header=None)
Pandas is a great library for managing large amounts of data, as a bonus it works well with numpy. There is also a very good chance that this will be much faster then using the csv
module.
You can use csv:
import csv
with open(ur_infile) as fin, open(ur_outfile, 'w') as fout:
o=csv.writer(fout)
for line in fin:
o.writerow(line.split())