Reputation: 201
I want to read in from a file, "ee_pinkH1.xpk" This is what my ee_pinkH1.xpk file looks like:
label dataset sw sf
1H 1H_2
NOESY_F1eF2e.nv
4807.69238281 4803.07373047
600.402832031 600.402832031
1H.L 1H.P 1H.W 1H.B 1H.E 1H.J 1H.U 1H_2.L 1H_2.P 1H_2.W 1H_2.B 1H_2.E 1H_2.J 1H_2.U vol int stat comment flag0 flag8 flag9
0 {} 7.78881 0.02842 0.04763 ++ {0.0} {} {} 5.89277 0.07262 0.11966 ++ {0.0} {} 0.0 7.3981 0 {} 0 0 0
1 {} 7.61431 0.04366 0.07181 ++ {0.0} {} {} 5.87817 0.06830 0.11334 ++ {0.0} {} 0.0 5.5413 0 {} 0 0 0
2 {} 8.05367 0.02879 0.03707 ++ {0.0} {} {} 5.73575 0.07116 0.10207 ++ {0.0} {} 0.0 4.4803 0 {} 0 0 0
3 {} 7.16881 0.03259 0.04929 ++ {0.0} {} {} 5.73917 0.06553 0.10821 ++ {0.0} {} 0.0 5.4038 0 {} 0 0 0
4 {} 7.94518 0.02852 0.04924 ++ {0.0} {} {} 5.63447 0.12494 0.10869 ++ {0.0} {} 0.0 2.4702 0 {} 0 0 0
5 {} 7.65731 0.05419 0.07742 ++ {0.0} {} {} 5.65039 0.08312 0.12708 ++ {0.0} {} 0.0 4.3950 0 {} 0 0 0
6 {} 7.60002 0.04926 0.07038 ++ {0.0} {} {} 5.63917 0.13377 0.24062 ++ {0.0} {} 0.0 6.3350 0 {} 0 0 0
7 {} 7.53822 0.03728 0.08602 ++ {0.0} {} {} 5.64647 0.12031 0.17187 ++ {0.0} {} 0.0 11.4796 0 {} 0 0 0
8 {} 7.49302 0.03011 0.04301 ++ {0.0} {} {} 5.64581 0.10163 0.14260 ++ {0.0} {} 0.0 4.2979 0 {} 0 0 0
9 {} 7.38454 0.02958 0.04024 ++ {0.0} {} {} 5.64981 0.06854 0.10766 ++ {0.0} {} 0.0 4.7322 0 {} 0 0 0
10 {} 8.04667 0.03795 0.05967 ++ {0.0} {} {} 5.60118 0.07613 0.11373 ++ {0.0} {} 0.0 5.2641 0 {} 0 0 0
11 {} 7.89060 0.04859 0.05923 ++ {0.0} {} {} 5.60680 0.09108 0.10902 ++ {0.0} {} 0.0 3.9888 0 {} 0 0 0
12 {} 7.38360 0.03251 0.04058 ++ {0.0} {} {} 5.49793 0.05913 0.07784 ++ {0.0} {} 0.0 3.7279 0 {} 0 0 0
13 {} 7.66280 0.02544 0.06748 ++ {0.0} {} {} 5.48500 0.08846 0.11309 ++ {0.0} {} 0.0 3.9823 0 {} 0 0 0
14 {} 7.60046 0.06299 0.09462 ++ {0.0} {} {} 5.48296 0.09213 0.13565 ++ {0.0} {} 0.0 5.1588 0 {} 0 0 0
15 {} 7.30477 0.03561 0.03189 ++ {0.0} {} {} 5.45582 0.07882 0.06792 ++ {0.0} {} 0.0 2.5031 0 {} 0 0 0
16 {} 7.69287 0.04291 0.05129 ++ {0.0} {} {} 5.41687 0.09768 0.11328 ++ {0.0} {} 0.0 3.6440 0 {} 0 0 0
17 {} 7.53968 0.05164 0.09332 ++ {0.0} {} {} 5.38349 0.11427 0.19768 ++ {0.0} {} 0.0 7.4048 0 {} 0 0 0
18 {} 8.06684 0.02564 0.02865 ++ {0.0} {} {} 5.16953 0.10655 0.11644 ++ {0.0} {} 0.0 3.2906 0 {} 0 0 0
19 {} 7.44620 0.03758 0.00001 ++ {0.0} {} {} 5.18077 0.17121 0.00003 ++ {0.0} {} 0.0 1.4552 0 {} 0 0 0
I want to take out specific values from each line and write it out to another file called "tclust.txt". Currently, this is what the output of my file looks like:
rbclust
Peak 2 7.61431 0.05 5.87817 0.05
Peak 3 8.05367 0.05 5.73575 0.05
Peak 4 7.16881 0.05 5.73917 0.05
Peak 5 7.94518 0.05 5.63447 0.05
Peak 6 7.65731 0.05 5.65039 0.05
Peak 7 7.60002 0.05 5.63917 0.05
Peak 8 7.53822 0.05 5.64647 0.05
Peak 9 7.49302 0.05 5.64581 0.05
Peak 10 7.38454 0.05 5.64981 0.05
Peak 11 8.04667 0.05 5.60118 0.05
Peak 12 7.89060 0.05 5.60680 0.05
Peak 13 7.38360 0.05 5.49793 0.05
Peak 14 7.66280 0.05 5.48500 0.05
Peak 15 7.60046 0.05 5.48296 0.05
Peak 16 7.30477 0.05 5.45582 0.05
Peak 17 7.69287 0.05 5.41687 0.05
Peak 18 7.53968 0.05 5.38349 0.05
Peak 19 8.06684 0.05 5.16953 0.05
Peak 20 7.44620 0.05 5.18077 0.05
Peak 1 7.78881 0.05 5.89277 0.05
This is my code:
import os
import sys
import re
i = 0;
contents_peak = []
peak_lines=[]
with open ("ee_pinkH1.xpk","r") as peakPPM:
for PPM in peakPPM.readlines():
float_num = re.findall("[\s][1-9]{1}\.[0-9]+",PPM)
if (len(float_num)>1):
i=i+1
value = ('Peak ' + str(i) + ' '+ str(float_num[0])+ ' 0.05'+ '\n')
peak_lines.insert(-1,value)
tclust_peak = open("tclust.txt","w+")
tclust_peak.write('rbclust \n')
for value in peak_lines:
tclust_peak.write(value)
tclust_peak.close()
j = 0;
contents_atom = []
atom_lines=[]
with open ("peaks_ee.xpk","r") as atomName:
for name in atomName.readlines():
float_str = re.findall("\d\.H\d'?", name)
if (len(float_str)>1):
j = j+1
value1 = ('Atom ' + str(j) + ' ' + str(float_str[0]) + ' ' + str(float_str[1]) + '\n')
atom_lines.insert(-1,value1)
tclust_atom = open("tclust.txt","a")
for value1 in atom_lines:
tclust_atom.write(value1)
tclust_atom.close()
Right now, the first line starts with Peak 2, and ends with Peak 1, how can start with Peak 1?
Upvotes: 1
Views: 250
Reputation: 18916
Yes... or you just write it inside the loop. Look at this: How can I open multiple files using "with open" in Python?
with open('a', 'w') as a, open('b', 'w') as b:
do_something()
So:
with open ("ee_pinkH1.xpk","r") as peakPPM, open("tclust.txt","w+") as tclust_peak:
#Loop...
#Code here....
tclust_peak.write('rbclust \n')
value = "Peak {} {} 0.05".format(str(i), str(float_num[0])
tclust_peak.write(value)
Upvotes: 1
Reputation: 799150
... Append entries at the end instead of inserting them just before the last entry.
peak_lines.append(value)
Upvotes: 6