select lines in python

Pierre Quentel quentel.pierre at wanadoo.fr
Wed Jul 15 06:04:01 EDT 2009


On 14 juil, 19:33, amr... at iisermohali.ac.in wrote:
> Dear all,
>
> Can anyone tell me that suppose i have a file having content like:
>
>     _Atom_name
>       _Atom_type
>       _Chem_shift_value
>       _Chem_shift_value_error
>       _Chem_shift_ambiguity_code
>      1     1   PHE       H     H      8.49     0.02     1
>      2     1   PHE       HA    H      4.60     0.02     1
>      3     1   PHE       CA    C     57.83      0.3     1
>      4     2   LEU       H     H      8.23     0.02     1
>      5     2   LEU       HA    H      4.25     0.02     1
>      6     2   LEU       HB2   H      1.54     0.02     1
>      7     3   ASP       H     H      8.10     0.02     1
>      8     3   ASP       HA    H      4.52     0.02     1
>      9     3   ASP       HB2   H      2.65     0.02     1
> stop
>
> now what i want that instead of copying all the lines it will just write
> the information about PHE and ASP then how i acn do that using python
> programming.Kindly tell me the command for that.
>
> Thanks,
> Amrita Kumari
> Research Fellow
> IISER Mohali
> Chandigarh
> INDIA

Hi,

The problem here is to test the values at specific colums in the file.
So I'd rather split each line into a list of values and do a test on
relevant items, like :

for line in open(filename):
    items = line.strip().split()
    if items[1] in ["ASP","PHE"]:
        (... handle this case ...)

Using re here is probably not the best way. It may happen that a
sequence appearing in a column also appears in another one ; and when
the tests become more complex the regular expression itself might
become complex, or even impossible (imagine the OP wants to test that
the numeric values are below a certain threshold)

- Pierre



More information about the Python-list mailing list