In article <[EMAIL PROTECTED]>, "Francesco Pietra" <[EMAIL PROTECTED]> wrote:
> I am posting ex novo as it became confusing to me. I take the > opportunity to ask advice for a second problem. > > FIRST PROBLEM > For file xxx.pdb, insert letter "A" into each line that starts with > "ATOM". "A" should be inserted 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 starting with "ATOM", "LEU" is constant as to position > only (18-20), i.e., "LEU" may be replaced by > three different uppercase letters. Therefore, the most direct > indication would be position 22. If specifying line starting with > "ATOM" makes complication, forget about that as most lines begin with > "ATOM" so that hand correction will be easy. > > Script > f = open("xxx.pdb", "w") > import sys > > for line in sys.stdin: > line = line[:22] + "A" + line[23:] > sys.stdout.write(line) You're opening "xxx.pdb" for writing, but then not writing to it. You're writing to stdout. BTW, you might want to take a look at http://biopython.org. -- http://mail.python.org/mailman/listinfo/python-list