Insert character at a fixed position of lines

Francesco Pietra chiendarret at gmail.com
Sat Jul 26 06:42:40 EDT 2008


I am still at the stone age, using scripts (e.g., to insert a string
after a string) of the type

f = open("xxx.pdb", "r")
for line in f:
   print line
   if "H16Z POPC" in line:
       print "TER"
f.close()

That is, I have to learn about modules. In your scripts I am lost
about the filename for the pdb file to modify,

francesco

On Sat, Jul 26, 2008 at 11:35 AM, Lie <Lie.1296 at gmail.com> wrote:
> On Jul 26, 2:41 pm, "Francesco Pietra" <chiendar... at gmail.com> wrote:
>> How to insert letter "A" on each line (of a very long list of lines)
>> at position 22, i.e., one space after "LEU", leaving all other
>> characters at the same position as in the original example:
>>
>> ATOM      1  N   LEU     1     146.615  40.494 103.776  1.00 73.04       1SG   2
>>
>> In all lines"ATOM" is constant as to both position and string, while
>> "LEU" is constant as to position only, i.e., "LEU" may be replaced by
>> three different uppercase letters. Therefore, the most direct
>> indication would be position 22.
>>
>> Should the script introduce blank lines, no problem. That I know how
>> to correct with a subsequent script.
>>
>> Thanks
>> chiendarret
>
> If you want to leave the rest of the strings as-is (i.e. the letter A
> overwrites whatever on position 22), Peter's code need to be modified
> a little:
> line = line[:22] + " " + line[23:]
> --
> http://mail.python.org/mailman/listinfo/python-list
>



-- 
Dr Francesco Pietra
Professor of Chemistry
Accademia Lucchese di Scienze, Lettere e Arti, founded in 1594
Palazzo Ducale
55100 Lucca (Italy)
e-mail chiendarret at gmail.com



More information about the Python-list mailing list