Insert character at a fixed position of lines

Lie Lie.1296 at gmail.com
Sat Jul 26 07:10:23 EDT 2008


On Jul 26, 5:42 pm, "Francesco Pietra" <chiendar... at gmail.com> wrote:
> 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,

In Python, stdin and stdout (as provided by the sys module) is a file-
like object, i.e. it have similar behavior as regular files you opened
with open(). stdin is a read-only file, while stdout is a write-only
file. You already know how to make read-only file, f = open("xxx.pdb",
"r"), to make it writable, you've got to use 'w' as the mode: f =
open("xxx.pdb", "w")

After that you can do this:
f.write('some string')


> francesco
>
>
>
> On Sat, Jul 26, 2008 at 11:35 AM, Lie <Lie.1... 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 chiendar... at gmail.com




More information about the Python-list mailing list