如何使用python编辑文件的特定列
我有多个输入文件,如下所示。我需要通过删除atom名称末尾的数字来编辑“atom”列(第5列)。我不知道如何完成我的代码。我怎么做 代码:如何使用python编辑文件的特定列,python,Python,我有多个输入文件,如下所示。我需要通过删除atom名称末尾的数字来编辑“atom”列(第5列)。我不知道如何完成我的代码。我怎么做 代码: with open('input.txt', mode='r') as f: for lines in f: columns = lines.split() [ atomtypes ] ;name bond_type mass charge ptype sigma epsi
with open('input.txt', mode='r') as f:
for lines in f:
columns = lines.split()
[ atomtypes ]
;name bond_type mass charge ptype sigma epsilon Amb
br br 0.00000 0.00000 A 3.59923e-01 1.75728e+00 ; 2.02 0.4200
cl cl 0.00000 0.00000 A 3.47094e-01 1.10876e+00 ; 1.95 0.2650
s s 0.00000 0.00000 A 3.56359e-01 1.04600e+00 ; 2.00 0.2500
p5 p5 0.00000 0.00000 A 3.74177e-01 8.36800e-01 ; 2.10 0.2000
os os 0.00000 0.00000 A 3.00001e-01 7.11280e-01 ; 1.68 0.1700
ca ca 0.00000 0.00000 A 3.39967e-01 3.59824e-01 ; 1.91 0.0860
c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
ha ha 0.00000 0.00000 A 2.59964e-01 6.27600e-02 ; 1.46 0.0150
h1 h1 0.00000 0.00000 A 2.47135e-01 6.56888e-02 ; 1.39 0.0157
[ moleculetype ]
;name nrexcl
LIG 3
[ atoms ]
; nr type resi res atom cgnr charge mass ; qtot bond_type
1 br 1 LIG BR1 1 -0.040100 79.90000 ; qtot -0.040
2 cl 1 LIG CL1 2 -0.040400 35.45000 ; qtot -0.081
3 cl 1 LIG CL2 3 -0.046400 35.45000 ; qtot -0.127
4 s 1 LIG S1 4 -0.576001 32.06000 ; qtot -0.703
5 p5 1 LIG P1 5 1.207199 30.97000 ; qtot 0.504
6 os 1 LIG O1 6 -0.442500 16.00000 ; qtot 0.062
7 os 1 LIG O2 7 -0.517201 16.00000 ; qtot -0.455
8 os 1 LIG O3 8 -0.517201 16.00000 ; qtot -0.973
9 ca 1 LIG C1 9 0.143100 12.01000 ; qtot -0.830
10 ca 1 LIG C2 10 0.012400 12.01000 ; qtot -0.817
11 ca 1 LIG C3 11 -0.127000 12.01000 ; qtot -0.944
12 ca 1 LIG C4 12 0.045400 12.01000 ; qtot -0.899
13 ca 1 LIG C5 13 -0.082000 12.01000 ; qtot -0.981
14 ca 1 LIG C6 14 -0.019900 12.01000 ; qtot -1.001
15 c3 1 LIG C7 15 0.125200 12.01000 ; qtot -0.875
16 c3 1 LIG C8 16 0.125200 12.01000 ; qtot -0.750
17 ha 1 LIG H1 17 0.178000 1.00800 ; qtot -0.572
18 ha 1 LIG H2 18 0.174000 1.00800 ; qtot -0.398
19 h1 1 LIG H3 19 0.066367 1.00800 ; qtot -0.332
20 h1 1 LIG H4 20 0.066367 1.00800 ; qtot -0.265
21 h1 1 LIG H5 21 0.066367 1.00800 ; qtot -0.199
22 h1 1 LIG H6 22 0.066367 1.00800 ; qtot -0.133
23 h1 1 LIG H7 23 0.066367 1.00800 ; qtot -0.066
24 h1 1 LIG H8 24 0.066367 1.00800 ; qtot -0.000
[ bonds ]
; ai aj funct r k
1 14 1 1.8970e-01 2.2560e+05 ; BR1 - C6
2 10 1 1.7290e-01 2.7012e+05 ; CL1 - C2
3 12 1 1.7290e-01 2.7012e+05 ; CL2 - C4
4 5 1 1.9220e-01 2.0987e+05 ; S1 - P1
5 6 1 1.6020e-01 2.8660e+05 ; P1 - O1
5 7 1 1.6020e-01 2.8660e+05 ; P1 - O2
5 8 1 1.6020e-01 2.8660e+05 ; P1 - O3
6 9 1 1.3730e-01 3.1162e+05 ; O1 - C1
7 15 1 1.4390e-01 2.5230e+05 ; O2 - C7
8 16 1 1.4390e-01 2.5230e+05 ; O3 - C8
9 10 1 1.3870e-01 4.0033e+05 ; C1 - C2
9 11 1 1.3870e-01 4.0033e+05 ; C1 - C3
10 13 1 1.3870e-01 4.0033e+05 ; C2 - C5
11 12 1 1.3870e-01 4.0033e+05 ; C3 - C4
11 17 1 1.0870e-01 2.8811e+05 ; C3 - H1
12 14 1 1.3870e-01 4.0033e+05 ; C4 - C6
13 14 1 1.3870e-01 4.0033e+05 ; C5 - C6
13 18 1 1.0870e-01 2.8811e+05 ; C5 - H2
15 19 1 1.0930e-01 2.8108e+05 ; C7 - H3
15 20 1 1.0930e-01 2.8108e+05 ; C7 - H4
15 21 1 1.0930e-01 2.8108e+05 ; C7 - H5
16 22 1 1.0930e-01 2.8108e+05 ; C8 - H6
16 23 1 1.0930e-01 2.8108e+05 ; C8 - H7
16 24 1 1.0930e-01 2.8108e+05 ; C8 - H8
[ atomtypes ]
;name bond_type mass charge ptype sigma epsilon Amb
br br 0.00000 0.00000 A 3.59923e-01 1.75728e+00 ; 2.02 0.4200
cl cl 0.00000 0.00000 A 3.47094e-01 1.10876e+00 ; 1.95 0.2650
s s 0.00000 0.00000 A 3.56359e-01 1.04600e+00 ; 2.00 0.2500
p5 p5 0.00000 0.00000 A 3.74177e-01 8.36800e-01 ; 2.10 0.2000
os os 0.00000 0.00000 A 3.00001e-01 7.11280e-01 ; 1.68 0.1700
ca ca 0.00000 0.00000 A 3.39967e-01 3.59824e-01 ; 1.91 0.0860
c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
ha ha 0.00000 0.00000 A 2.59964e-01 6.27600e-02 ; 1.46 0.0150
h1 h1 0.00000 0.00000 A 2.47135e-01 6.56888e-02 ; 1.39 0.0157
[ moleculetype ]
;name nrexcl
LIG 3
[ atoms ]
; nr type resi res atom cgnr charge mass ; qtot bond_type
1 br 1 LIG BR 1 -0.040100 79.90000 ; qtot -0.040
2 cl 1 LIG CL 2 -0.040400 35.45000 ; qtot -0.081
3 cl 1 LIG CL 3 -0.046400 35.45000 ; qtot -0.127
4 s 1 LIG S 4 -0.576001 32.06000 ; qtot -0.703
5 p5 1 LIG P 5 1.207199 30.97000 ; qtot 0.504
6 os 1 LIG O 6 -0.442500 16.00000 ; qtot 0.062
7 os 1 LIG O 7 -0.517201 16.00000 ; qtot -0.455
8 os 1 LIG O 8 -0.517201 16.00000 ; qtot -0.973
9 ca 1 LIG C 9 0.143100 12.01000 ; qtot -0.830
10 ca 1 LIG C 10 0.012400 12.01000 ; qtot -0.817
11 ca 1 LIG C 11 -0.127000 12.01000 ; qtot -0.944
12 ca 1 LIG C 12 0.045400 12.01000 ; qtot -0.899
13 ca 1 LIG C 13 -0.082000 12.01000 ; qtot -0.981
14 ca 1 LIG C 14 -0.019900 12.01000 ; qtot -1.001
15 c3 1 LIG C 15 0.125200 12.01000 ; qtot -0.875
16 c3 1 LIG C 16 0.125200 12.01000 ; qtot -0.750
17 ha 1 LIG H 17 0.178000 1.00800 ; qtot -0.572
18 ha 1 LIG H 18 0.174000 1.00800 ; qtot -0.398
19 h1 1 LIG H 19 0.066367 1.00800 ; qtot -0.332
20 h1 1 LIG H 20 0.066367 1.00800 ; qtot -0.265
21 h1 1 LIG H 21 0.066367 1.00800 ; qtot -0.199
22 h1 1 LIG H 22 0.066367 1.00800 ; qtot -0.133
23 h1 1 LIG H 23 0.066367 1.00800 ; qtot -0.066
24 h1 1 LIG H 24 0.066367 1.00800 ; qtot -0.000
[ bonds ]
; ai aj funct r k
1 14 1 1.8970e-01 2.2560e+05 ; BR1 - C6
2 10 1 1.7290e-01 2.7012e+05 ; CL1 - C2
3 12 1 1.7290e-01 2.7012e+05 ; CL2 - C4
4 5 1 1.9220e-01 2.0987e+05 ; S1 - P1
5 6 1 1.6020e-01 2.8660e+05 ; P1 - O1
5 7 1 1.6020e-01 2.8660e+05 ; P1 - O2
5 8 1 1.6020e-01 2.8660e+05 ; P1 - O3
6 9 1 1.3730e-01 3.1162e+05 ; O1 - C1
7 15 1 1.4390e-01 2.5230e+05 ; O2 - C7
8 16 1 1.4390e-01 2.5230e+05 ; O3 - C8
9 10 1 1.3870e-01 4.0033e+05 ; C1 - C2
9 11 1 1.3870e-01 4.0033e+05 ; C1 - C3
10 13 1 1.3870e-01 4.0033e+05 ; C2 - C5
11 12 1 1.3870e-01 4.0033e+05 ; C3 - C4
11 17 1 1.0870e-01 2.8811e+05 ; C3 - H1
12 14 1 1.3870e-01 4.0033e+05 ; C4 - C6
13 14 1 1.3870e-01 4.0033e+05 ; C5 - C6
13 18 1 1.0870e-01 2.8811e+05 ; C5 - H2
15 19 1 1.0930e-01 2.8108e+05 ; C7 - H3
15 20 1 1.0930e-01 2.8108e+05 ; C7 - H4
15 21 1 1.0930e-01 2.8108e+05 ; C7 - H5
16 22 1 1.0930e-01 2.8108e+05 ; C8 - H6
16 23 1 1.0930e-01 2.8108e+05 ; C8 - H7
16 24 1 1.0930e-01 2.8108e+05 ; C8 - H8
输入文件:
with open('input.txt', mode='r') as f:
for lines in f:
columns = lines.split()
[ atomtypes ]
;name bond_type mass charge ptype sigma epsilon Amb
br br 0.00000 0.00000 A 3.59923e-01 1.75728e+00 ; 2.02 0.4200
cl cl 0.00000 0.00000 A 3.47094e-01 1.10876e+00 ; 1.95 0.2650
s s 0.00000 0.00000 A 3.56359e-01 1.04600e+00 ; 2.00 0.2500
p5 p5 0.00000 0.00000 A 3.74177e-01 8.36800e-01 ; 2.10 0.2000
os os 0.00000 0.00000 A 3.00001e-01 7.11280e-01 ; 1.68 0.1700
ca ca 0.00000 0.00000 A 3.39967e-01 3.59824e-01 ; 1.91 0.0860
c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
ha ha 0.00000 0.00000 A 2.59964e-01 6.27600e-02 ; 1.46 0.0150
h1 h1 0.00000 0.00000 A 2.47135e-01 6.56888e-02 ; 1.39 0.0157
[ moleculetype ]
;name nrexcl
LIG 3
[ atoms ]
; nr type resi res atom cgnr charge mass ; qtot bond_type
1 br 1 LIG BR1 1 -0.040100 79.90000 ; qtot -0.040
2 cl 1 LIG CL1 2 -0.040400 35.45000 ; qtot -0.081
3 cl 1 LIG CL2 3 -0.046400 35.45000 ; qtot -0.127
4 s 1 LIG S1 4 -0.576001 32.06000 ; qtot -0.703
5 p5 1 LIG P1 5 1.207199 30.97000 ; qtot 0.504
6 os 1 LIG O1 6 -0.442500 16.00000 ; qtot 0.062
7 os 1 LIG O2 7 -0.517201 16.00000 ; qtot -0.455
8 os 1 LIG O3 8 -0.517201 16.00000 ; qtot -0.973
9 ca 1 LIG C1 9 0.143100 12.01000 ; qtot -0.830
10 ca 1 LIG C2 10 0.012400 12.01000 ; qtot -0.817
11 ca 1 LIG C3 11 -0.127000 12.01000 ; qtot -0.944
12 ca 1 LIG C4 12 0.045400 12.01000 ; qtot -0.899
13 ca 1 LIG C5 13 -0.082000 12.01000 ; qtot -0.981
14 ca 1 LIG C6 14 -0.019900 12.01000 ; qtot -1.001
15 c3 1 LIG C7 15 0.125200 12.01000 ; qtot -0.875
16 c3 1 LIG C8 16 0.125200 12.01000 ; qtot -0.750
17 ha 1 LIG H1 17 0.178000 1.00800 ; qtot -0.572
18 ha 1 LIG H2 18 0.174000 1.00800 ; qtot -0.398
19 h1 1 LIG H3 19 0.066367 1.00800 ; qtot -0.332
20 h1 1 LIG H4 20 0.066367 1.00800 ; qtot -0.265
21 h1 1 LIG H5 21 0.066367 1.00800 ; qtot -0.199
22 h1 1 LIG H6 22 0.066367 1.00800 ; qtot -0.133
23 h1 1 LIG H7 23 0.066367 1.00800 ; qtot -0.066
24 h1 1 LIG H8 24 0.066367 1.00800 ; qtot -0.000
[ bonds ]
; ai aj funct r k
1 14 1 1.8970e-01 2.2560e+05 ; BR1 - C6
2 10 1 1.7290e-01 2.7012e+05 ; CL1 - C2
3 12 1 1.7290e-01 2.7012e+05 ; CL2 - C4
4 5 1 1.9220e-01 2.0987e+05 ; S1 - P1
5 6 1 1.6020e-01 2.8660e+05 ; P1 - O1
5 7 1 1.6020e-01 2.8660e+05 ; P1 - O2
5 8 1 1.6020e-01 2.8660e+05 ; P1 - O3
6 9 1 1.3730e-01 3.1162e+05 ; O1 - C1
7 15 1 1.4390e-01 2.5230e+05 ; O2 - C7
8 16 1 1.4390e-01 2.5230e+05 ; O3 - C8
9 10 1 1.3870e-01 4.0033e+05 ; C1 - C2
9 11 1 1.3870e-01 4.0033e+05 ; C1 - C3
10 13 1 1.3870e-01 4.0033e+05 ; C2 - C5
11 12 1 1.3870e-01 4.0033e+05 ; C3 - C4
11 17 1 1.0870e-01 2.8811e+05 ; C3 - H1
12 14 1 1.3870e-01 4.0033e+05 ; C4 - C6
13 14 1 1.3870e-01 4.0033e+05 ; C5 - C6
13 18 1 1.0870e-01 2.8811e+05 ; C5 - H2
15 19 1 1.0930e-01 2.8108e+05 ; C7 - H3
15 20 1 1.0930e-01 2.8108e+05 ; C7 - H4
15 21 1 1.0930e-01 2.8108e+05 ; C7 - H5
16 22 1 1.0930e-01 2.8108e+05 ; C8 - H6
16 23 1 1.0930e-01 2.8108e+05 ; C8 - H7
16 24 1 1.0930e-01 2.8108e+05 ; C8 - H8
[ atomtypes ]
;name bond_type mass charge ptype sigma epsilon Amb
br br 0.00000 0.00000 A 3.59923e-01 1.75728e+00 ; 2.02 0.4200
cl cl 0.00000 0.00000 A 3.47094e-01 1.10876e+00 ; 1.95 0.2650
s s 0.00000 0.00000 A 3.56359e-01 1.04600e+00 ; 2.00 0.2500
p5 p5 0.00000 0.00000 A 3.74177e-01 8.36800e-01 ; 2.10 0.2000
os os 0.00000 0.00000 A 3.00001e-01 7.11280e-01 ; 1.68 0.1700
ca ca 0.00000 0.00000 A 3.39967e-01 3.59824e-01 ; 1.91 0.0860
c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
ha ha 0.00000 0.00000 A 2.59964e-01 6.27600e-02 ; 1.46 0.0150
h1 h1 0.00000 0.00000 A 2.47135e-01 6.56888e-02 ; 1.39 0.0157
[ moleculetype ]
;name nrexcl
LIG 3
[ atoms ]
; nr type resi res atom cgnr charge mass ; qtot bond_type
1 br 1 LIG BR 1 -0.040100 79.90000 ; qtot -0.040
2 cl 1 LIG CL 2 -0.040400 35.45000 ; qtot -0.081
3 cl 1 LIG CL 3 -0.046400 35.45000 ; qtot -0.127
4 s 1 LIG S 4 -0.576001 32.06000 ; qtot -0.703
5 p5 1 LIG P 5 1.207199 30.97000 ; qtot 0.504
6 os 1 LIG O 6 -0.442500 16.00000 ; qtot 0.062
7 os 1 LIG O 7 -0.517201 16.00000 ; qtot -0.455
8 os 1 LIG O 8 -0.517201 16.00000 ; qtot -0.973
9 ca 1 LIG C 9 0.143100 12.01000 ; qtot -0.830
10 ca 1 LIG C 10 0.012400 12.01000 ; qtot -0.817
11 ca 1 LIG C 11 -0.127000 12.01000 ; qtot -0.944
12 ca 1 LIG C 12 0.045400 12.01000 ; qtot -0.899
13 ca 1 LIG C 13 -0.082000 12.01000 ; qtot -0.981
14 ca 1 LIG C 14 -0.019900 12.01000 ; qtot -1.001
15 c3 1 LIG C 15 0.125200 12.01000 ; qtot -0.875
16 c3 1 LIG C 16 0.125200 12.01000 ; qtot -0.750
17 ha 1 LIG H 17 0.178000 1.00800 ; qtot -0.572
18 ha 1 LIG H 18 0.174000 1.00800 ; qtot -0.398
19 h1 1 LIG H 19 0.066367 1.00800 ; qtot -0.332
20 h1 1 LIG H 20 0.066367 1.00800 ; qtot -0.265
21 h1 1 LIG H 21 0.066367 1.00800 ; qtot -0.199
22 h1 1 LIG H 22 0.066367 1.00800 ; qtot -0.133
23 h1 1 LIG H 23 0.066367 1.00800 ; qtot -0.066
24 h1 1 LIG H 24 0.066367 1.00800 ; qtot -0.000
[ bonds ]
; ai aj funct r k
1 14 1 1.8970e-01 2.2560e+05 ; BR1 - C6
2 10 1 1.7290e-01 2.7012e+05 ; CL1 - C2
3 12 1 1.7290e-01 2.7012e+05 ; CL2 - C4
4 5 1 1.9220e-01 2.0987e+05 ; S1 - P1
5 6 1 1.6020e-01 2.8660e+05 ; P1 - O1
5 7 1 1.6020e-01 2.8660e+05 ; P1 - O2
5 8 1 1.6020e-01 2.8660e+05 ; P1 - O3
6 9 1 1.3730e-01 3.1162e+05 ; O1 - C1
7 15 1 1.4390e-01 2.5230e+05 ; O2 - C7
8 16 1 1.4390e-01 2.5230e+05 ; O3 - C8
9 10 1 1.3870e-01 4.0033e+05 ; C1 - C2
9 11 1 1.3870e-01 4.0033e+05 ; C1 - C3
10 13 1 1.3870e-01 4.0033e+05 ; C2 - C5
11 12 1 1.3870e-01 4.0033e+05 ; C3 - C4
11 17 1 1.0870e-01 2.8811e+05 ; C3 - H1
12 14 1 1.3870e-01 4.0033e+05 ; C4 - C6
13 14 1 1.3870e-01 4.0033e+05 ; C5 - C6
13 18 1 1.0870e-01 2.8811e+05 ; C5 - H2
15 19 1 1.0930e-01 2.8108e+05 ; C7 - H3
15 20 1 1.0930e-01 2.8108e+05 ; C7 - H4
15 21 1 1.0930e-01 2.8108e+05 ; C7 - H5
16 22 1 1.0930e-01 2.8108e+05 ; C8 - H6
16 23 1 1.0930e-01 2.8108e+05 ; C8 - H7
16 24 1 1.0930e-01 2.8108e+05 ; C8 - H8
所需的输出文件:
with open('input.txt', mode='r') as f:
for lines in f:
columns = lines.split()
[ atomtypes ]
;name bond_type mass charge ptype sigma epsilon Amb
br br 0.00000 0.00000 A 3.59923e-01 1.75728e+00 ; 2.02 0.4200
cl cl 0.00000 0.00000 A 3.47094e-01 1.10876e+00 ; 1.95 0.2650
s s 0.00000 0.00000 A 3.56359e-01 1.04600e+00 ; 2.00 0.2500
p5 p5 0.00000 0.00000 A 3.74177e-01 8.36800e-01 ; 2.10 0.2000
os os 0.00000 0.00000 A 3.00001e-01 7.11280e-01 ; 1.68 0.1700
ca ca 0.00000 0.00000 A 3.39967e-01 3.59824e-01 ; 1.91 0.0860
c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
ha ha 0.00000 0.00000 A 2.59964e-01 6.27600e-02 ; 1.46 0.0150
h1 h1 0.00000 0.00000 A 2.47135e-01 6.56888e-02 ; 1.39 0.0157
[ moleculetype ]
;name nrexcl
LIG 3
[ atoms ]
; nr type resi res atom cgnr charge mass ; qtot bond_type
1 br 1 LIG BR1 1 -0.040100 79.90000 ; qtot -0.040
2 cl 1 LIG CL1 2 -0.040400 35.45000 ; qtot -0.081
3 cl 1 LIG CL2 3 -0.046400 35.45000 ; qtot -0.127
4 s 1 LIG S1 4 -0.576001 32.06000 ; qtot -0.703
5 p5 1 LIG P1 5 1.207199 30.97000 ; qtot 0.504
6 os 1 LIG O1 6 -0.442500 16.00000 ; qtot 0.062
7 os 1 LIG O2 7 -0.517201 16.00000 ; qtot -0.455
8 os 1 LIG O3 8 -0.517201 16.00000 ; qtot -0.973
9 ca 1 LIG C1 9 0.143100 12.01000 ; qtot -0.830
10 ca 1 LIG C2 10 0.012400 12.01000 ; qtot -0.817
11 ca 1 LIG C3 11 -0.127000 12.01000 ; qtot -0.944
12 ca 1 LIG C4 12 0.045400 12.01000 ; qtot -0.899
13 ca 1 LIG C5 13 -0.082000 12.01000 ; qtot -0.981
14 ca 1 LIG C6 14 -0.019900 12.01000 ; qtot -1.001
15 c3 1 LIG C7 15 0.125200 12.01000 ; qtot -0.875
16 c3 1 LIG C8 16 0.125200 12.01000 ; qtot -0.750
17 ha 1 LIG H1 17 0.178000 1.00800 ; qtot -0.572
18 ha 1 LIG H2 18 0.174000 1.00800 ; qtot -0.398
19 h1 1 LIG H3 19 0.066367 1.00800 ; qtot -0.332
20 h1 1 LIG H4 20 0.066367 1.00800 ; qtot -0.265
21 h1 1 LIG H5 21 0.066367 1.00800 ; qtot -0.199
22 h1 1 LIG H6 22 0.066367 1.00800 ; qtot -0.133
23 h1 1 LIG H7 23 0.066367 1.00800 ; qtot -0.066
24 h1 1 LIG H8 24 0.066367 1.00800 ; qtot -0.000
[ bonds ]
; ai aj funct r k
1 14 1 1.8970e-01 2.2560e+05 ; BR1 - C6
2 10 1 1.7290e-01 2.7012e+05 ; CL1 - C2
3 12 1 1.7290e-01 2.7012e+05 ; CL2 - C4
4 5 1 1.9220e-01 2.0987e+05 ; S1 - P1
5 6 1 1.6020e-01 2.8660e+05 ; P1 - O1
5 7 1 1.6020e-01 2.8660e+05 ; P1 - O2
5 8 1 1.6020e-01 2.8660e+05 ; P1 - O3
6 9 1 1.3730e-01 3.1162e+05 ; O1 - C1
7 15 1 1.4390e-01 2.5230e+05 ; O2 - C7
8 16 1 1.4390e-01 2.5230e+05 ; O3 - C8
9 10 1 1.3870e-01 4.0033e+05 ; C1 - C2
9 11 1 1.3870e-01 4.0033e+05 ; C1 - C3
10 13 1 1.3870e-01 4.0033e+05 ; C2 - C5
11 12 1 1.3870e-01 4.0033e+05 ; C3 - C4
11 17 1 1.0870e-01 2.8811e+05 ; C3 - H1
12 14 1 1.3870e-01 4.0033e+05 ; C4 - C6
13 14 1 1.3870e-01 4.0033e+05 ; C5 - C6
13 18 1 1.0870e-01 2.8811e+05 ; C5 - H2
15 19 1 1.0930e-01 2.8108e+05 ; C7 - H3
15 20 1 1.0930e-01 2.8108e+05 ; C7 - H4
15 21 1 1.0930e-01 2.8108e+05 ; C7 - H5
16 22 1 1.0930e-01 2.8108e+05 ; C8 - H6
16 23 1 1.0930e-01 2.8108e+05 ; C8 - H7
16 24 1 1.0930e-01 2.8108e+05 ; C8 - H8
[ atomtypes ]
;name bond_type mass charge ptype sigma epsilon Amb
br br 0.00000 0.00000 A 3.59923e-01 1.75728e+00 ; 2.02 0.4200
cl cl 0.00000 0.00000 A 3.47094e-01 1.10876e+00 ; 1.95 0.2650
s s 0.00000 0.00000 A 3.56359e-01 1.04600e+00 ; 2.00 0.2500
p5 p5 0.00000 0.00000 A 3.74177e-01 8.36800e-01 ; 2.10 0.2000
os os 0.00000 0.00000 A 3.00001e-01 7.11280e-01 ; 1.68 0.1700
ca ca 0.00000 0.00000 A 3.39967e-01 3.59824e-01 ; 1.91 0.0860
c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
ha ha 0.00000 0.00000 A 2.59964e-01 6.27600e-02 ; 1.46 0.0150
h1 h1 0.00000 0.00000 A 2.47135e-01 6.56888e-02 ; 1.39 0.0157
[ moleculetype ]
;name nrexcl
LIG 3
[ atoms ]
; nr type resi res atom cgnr charge mass ; qtot bond_type
1 br 1 LIG BR 1 -0.040100 79.90000 ; qtot -0.040
2 cl 1 LIG CL 2 -0.040400 35.45000 ; qtot -0.081
3 cl 1 LIG CL 3 -0.046400 35.45000 ; qtot -0.127
4 s 1 LIG S 4 -0.576001 32.06000 ; qtot -0.703
5 p5 1 LIG P 5 1.207199 30.97000 ; qtot 0.504
6 os 1 LIG O 6 -0.442500 16.00000 ; qtot 0.062
7 os 1 LIG O 7 -0.517201 16.00000 ; qtot -0.455
8 os 1 LIG O 8 -0.517201 16.00000 ; qtot -0.973
9 ca 1 LIG C 9 0.143100 12.01000 ; qtot -0.830
10 ca 1 LIG C 10 0.012400 12.01000 ; qtot -0.817
11 ca 1 LIG C 11 -0.127000 12.01000 ; qtot -0.944
12 ca 1 LIG C 12 0.045400 12.01000 ; qtot -0.899
13 ca 1 LIG C 13 -0.082000 12.01000 ; qtot -0.981
14 ca 1 LIG C 14 -0.019900 12.01000 ; qtot -1.001
15 c3 1 LIG C 15 0.125200 12.01000 ; qtot -0.875
16 c3 1 LIG C 16 0.125200 12.01000 ; qtot -0.750
17 ha 1 LIG H 17 0.178000 1.00800 ; qtot -0.572
18 ha 1 LIG H 18 0.174000 1.00800 ; qtot -0.398
19 h1 1 LIG H 19 0.066367 1.00800 ; qtot -0.332
20 h1 1 LIG H 20 0.066367 1.00800 ; qtot -0.265
21 h1 1 LIG H 21 0.066367 1.00800 ; qtot -0.199
22 h1 1 LIG H 22 0.066367 1.00800 ; qtot -0.133
23 h1 1 LIG H 23 0.066367 1.00800 ; qtot -0.066
24 h1 1 LIG H 24 0.066367 1.00800 ; qtot -0.000
[ bonds ]
; ai aj funct r k
1 14 1 1.8970e-01 2.2560e+05 ; BR1 - C6
2 10 1 1.7290e-01 2.7012e+05 ; CL1 - C2
3 12 1 1.7290e-01 2.7012e+05 ; CL2 - C4
4 5 1 1.9220e-01 2.0987e+05 ; S1 - P1
5 6 1 1.6020e-01 2.8660e+05 ; P1 - O1
5 7 1 1.6020e-01 2.8660e+05 ; P1 - O2
5 8 1 1.6020e-01 2.8660e+05 ; P1 - O3
6 9 1 1.3730e-01 3.1162e+05 ; O1 - C1
7 15 1 1.4390e-01 2.5230e+05 ; O2 - C7
8 16 1 1.4390e-01 2.5230e+05 ; O3 - C8
9 10 1 1.3870e-01 4.0033e+05 ; C1 - C2
9 11 1 1.3870e-01 4.0033e+05 ; C1 - C3
10 13 1 1.3870e-01 4.0033e+05 ; C2 - C5
11 12 1 1.3870e-01 4.0033e+05 ; C3 - C4
11 17 1 1.0870e-01 2.8811e+05 ; C3 - H1
12 14 1 1.3870e-01 4.0033e+05 ; C4 - C6
13 14 1 1.3870e-01 4.0033e+05 ; C5 - C6
13 18 1 1.0870e-01 2.8811e+05 ; C5 - H2
15 19 1 1.0930e-01 2.8108e+05 ; C7 - H3
15 20 1 1.0930e-01 2.8108e+05 ; C7 - H4
15 21 1 1.0930e-01 2.8108e+05 ; C7 - H5
16 22 1 1.0930e-01 2.8108e+05 ; C8 - H6
16 23 1 1.0930e-01 2.8108e+05 ; C8 - H7
16 24 1 1.0930e-01 2.8108e+05 ; C8 - H8
按索引号匹配,并再次循环检查数字(
isdigit()
)
输出:
['nr', 'type', 'resi', 'res', 'atom', 'cgnr', 'charge', 'mass', ';', 'qtot', 'bond_type']
['1', 'br', '1', 'LIG', 'BR', '1', '-0.040100', '79.90000', ';', 'qtot', '-0.040']
['2', 'cl', '1', 'LIG', 'CL', '2', '-0.040400', '35.45000', ';', 'qtot', '-0.081']
['3', 'cl', '1', 'LIG', 'CL', '3', '-0.046400', '35.45000', ';', 'qtot', '-0.127']
['4', 's', '1', 'LIG', 'S', '4', '-0.576001', '32.06000', ';', 'qtot', '-0.703']
['5', 'p5', '1', 'LIG', 'P', '5', '1.207199', '30.97000', ';', 'qtot', '0.504']
['6', 'os', '1', 'LIG', 'O', '6', '-0.442500', '16.00000', ';', 'qtot', '0.062']
['7', 'os', '1', 'LIG', 'O', '7', '-0.517201', '16.00000', ';', 'qtot', '-0.455']
['8', 'os', '1', 'LIG', 'O', '8', '-0.517201', '16.00000', ';', 'qtot', '-0.973']
['9', 'ca', '1', 'LIG', 'C', '9', '0.143100', '12.01000', ';', 'qtot', '-0.830']
['10', 'ca', '1', 'LIG', 'C', '10', '0.012400', '12.01000', ';', 'qtot', '-0.817']
['11', 'ca', '1', 'LIG', 'C', '11', '-0.127000', '12.01000', ';', 'qtot', '-0.944']
['12', 'ca', '1', 'LIG', 'C', '12', '0.045400', '12.01000', ';', 'qtot', '-0.899']
['13', 'ca', '1', 'LIG', 'C', '13', '-0.082000', '12.01000', ';', 'qtot', '-0.981']
['14', 'ca', '1', 'LIG', 'C', '14', '-0.019900', '12.01000', ';', 'qtot', '-1.001']
['15', 'c3', '1', 'LIG', 'C', '15', '0.125200', '12.01000', ';', 'qtot', '-0.875']
['16', 'c3', '1', 'LIG', 'C', '16', '0.125200', '12.01000', ';', 'qtot', '-0.750']
['17', 'ha', '1', 'LIG', 'H', '17', '0.178000', '1.00800', ';', 'qtot', '-0.572']
['18', 'ha', '1', 'LIG', 'H', '18', '0.174000', '1.00800', ';', 'qtot', '-0.398']
['19', 'h1', '1', 'LIG', 'H', '19', '0.066367', '1.00800', ';', 'qtot', '-0.332']
['20', 'h1', '1', 'LIG', 'H', '20', '0.066367', '1.00800', ';', 'qtot', '-0.265']
atom
如果希望输出与您的相同,请使用
'\t'。join(i)
将它们合并并再次打印。您可以使用此正则表达式删除字符串末尾的任何数字
re.sub("[0-9]+$","", string)
例如:
import re
x = 'atom653'
print(re.sub("[0-9]+$","", x))
输出:
['nr', 'type', 'resi', 'res', 'atom', 'cgnr', 'charge', 'mass', ';', 'qtot', 'bond_type']
['1', 'br', '1', 'LIG', 'BR', '1', '-0.040100', '79.90000', ';', 'qtot', '-0.040']
['2', 'cl', '1', 'LIG', 'CL', '2', '-0.040400', '35.45000', ';', 'qtot', '-0.081']
['3', 'cl', '1', 'LIG', 'CL', '3', '-0.046400', '35.45000', ';', 'qtot', '-0.127']
['4', 's', '1', 'LIG', 'S', '4', '-0.576001', '32.06000', ';', 'qtot', '-0.703']
['5', 'p5', '1', 'LIG', 'P', '5', '1.207199', '30.97000', ';', 'qtot', '0.504']
['6', 'os', '1', 'LIG', 'O', '6', '-0.442500', '16.00000', ';', 'qtot', '0.062']
['7', 'os', '1', 'LIG', 'O', '7', '-0.517201', '16.00000', ';', 'qtot', '-0.455']
['8', 'os', '1', 'LIG', 'O', '8', '-0.517201', '16.00000', ';', 'qtot', '-0.973']
['9', 'ca', '1', 'LIG', 'C', '9', '0.143100', '12.01000', ';', 'qtot', '-0.830']
['10', 'ca', '1', 'LIG', 'C', '10', '0.012400', '12.01000', ';', 'qtot', '-0.817']
['11', 'ca', '1', 'LIG', 'C', '11', '-0.127000', '12.01000', ';', 'qtot', '-0.944']
['12', 'ca', '1', 'LIG', 'C', '12', '0.045400', '12.01000', ';', 'qtot', '-0.899']
['13', 'ca', '1', 'LIG', 'C', '13', '-0.082000', '12.01000', ';', 'qtot', '-0.981']
['14', 'ca', '1', 'LIG', 'C', '14', '-0.019900', '12.01000', ';', 'qtot', '-1.001']
['15', 'c3', '1', 'LIG', 'C', '15', '0.125200', '12.01000', ';', 'qtot', '-0.875']
['16', 'c3', '1', 'LIG', 'C', '16', '0.125200', '12.01000', ';', 'qtot', '-0.750']
['17', 'ha', '1', 'LIG', 'H', '17', '0.178000', '1.00800', ';', 'qtot', '-0.572']
['18', 'ha', '1', 'LIG', 'H', '18', '0.174000', '1.00800', ';', 'qtot', '-0.398']
['19', 'h1', '1', 'LIG', 'H', '19', '0.066367', '1.00800', ';', 'qtot', '-0.332']
['20', 'h1', '1', 'LIG', 'H', '20', '0.066367', '1.00800', ';', 'qtot', '-0.265']
atom
您可以稍微修改发布的代码,将输入文件转换为嵌套列表
input_list = []
with open('input.txt', mode='r') as f:
for lines in f:
columns = lines.split()
input_list.append(columns)
然后,您可以将正则表达式应用于输入列表中每个列表的第4个元素
for sublist in input_list:
sublist[4] = re.sub("[0-9]+$","", sublist[4])
作为一个旁注,考虑使用Python中的表格输入来工作。
编辑: 下面的代码应该适用于输入的新版本# Read the input
input_list = []
with open('input.txt', mode='r') as f:
for lines in f:
columns = lines.split()
input_list.append(columns)
print(input_list)
# Extract the lines before and after the table with atoms
atoms_start = input_list.index(['[', 'atoms', ']'])
atoms_end = input_list.index(['[', 'bonds', ']'])-1
before_atoms = input_list[:atoms_start]
after_atoms = input_list[atoms_end:]
atoms = input_list[atoms_start:atoms_end]
# Modify the atoms table
for sublist in atoms[1:]:
sublist[4] = re.sub("[0-9]+$","", sublist[4])
# Merge all parts back
final_list = before_atoms+atoms+after_atoms
编辑2:
保存文件的步骤(从)
以下代码给出了此错误:IndexError:列表索引超出范围。代码:
input\u list=[]打开(“input.txt”,mode='r')为f:for f:columns=lines.split()input\u list.append(columns)for sublist in input\u list:sublist[4]=re.sub([0-9]+$,“”,sublist[4])
看起来您的一个子列表(输入文件中的行)包含的元素(列)少于5个谢谢我修正了这个错误,但是原子名仍然是一样的。代码不会删除字符串末尾的任何数字。我的代码:input\u list=[],其中open(“input.txt”,mode='r')为f:for f:columns=lines.split()input\u list.append(columns)为input\u list中的子列表:sublist[4]=re.sub([0-9]+$,“”,sublist[4])
。另一个问题是代码没有搜索“atom”列。这应该是因为在实际的输入文件中有几个“atom”字。代码工作时假设“atom”列始终是行子列表的第5个元素。尝试在输入列表中的子列表的之后添加print(子列表[4])
,以确保始终引用正确的元素。