Francesco Pietra wrote:
Hi:
script now used:
# Sample line
# Slice indexes cut to the left of the corresponding item index
# 1 2 3 4 5 6
# 012345678901234567890123456789012345678901234567890123456789012345 ...
# ATOM 1 W W 1 0.690 35.960 33.300 1.00 0.00
data = open('out.2.5.2.5.2.0.pdb', 'r')
outp = open('rect.out.2.5.2.5.2.0.pdb', 'w')
for L in data:
if L[19] == 'W':
L = L[ : 17] + L[19] + L[18] + ' ' + L[20 : ]
outp.write(L)
france...@tya64:~/tmp$ python MRAB.py
Traceback (most recent call last):
File "MRAB.py", line 11, in <module>
if L[19] == 'W':
IndexError: string index out of range
france...@tya64:~/tmp$
Unfortunately, in my hands gmail plaint text is like that. Actually,
the second 'W' is 19.
The code is assuming that the lines are all at least 19 characters long;
if a line is shorter then there's no position 19!
Try checking the line length too:
if len(L) >= 19 and L[19] == 'W':
Alternatively:
if L[19 : 20] == 'W':
(If the line is too short then L[19 : 20] will return ''.)
--
http://mail.python.org/mailman/listinfo/python-list