Bonjour !
Je souaiterai écrire une fonction qui prend en entré un carac ('O') et renvois toutes les lignes contenant 'O', mais seuleument 6 colonnes comme montré dans le output sous forme de liste de liste.
def function('O'):
fa = open(fichier, 'r')
texte = fa.read()
d = []
for line in fa:
if line.startswith('O'): # là il faut écrire dans une liste de liste les lignes commençant par O, je bloque à mort
d.append(line[12:16])
d.append(line[17:20])
d.append(line[22:26])
d.append(line[30:38])
d.append(line[38:46])
d.append(line[46:54])
print(d)
fa = open(fichier, 'r')
Mon script me donne une suite des append.
Position des string pour extraction des chaines
[0:6] [6:11] [12:16] [17:20] [21:22] [22:26] [30:38] [38:46] [46:54]
PICK 1291 C ASP B 275 36.749 95.634 34.461
fichier
PICK 1292 O ASP B 275 36.698 95.930 35.652
PICK 1293 CB ASP B 275 38.837 94.563 33.695
PICK 1297 N ASN B 276 36.311 96.431 33.496
PICK 1298 CA ASN B 276 35.723 97.741 33.762
PICK 1299 C ASN B 276 34.241 97.712 34.171
PICK 1300 O ASN B 276 33.581 98.752 34.197
PICK 1302 CG ASN B 276 35.248 98.021 31.268
output
[['O', 'ASP', '275','36.698','95.930','35.652'],
['O', 'ASN', '276','33.581', '98.752','34.197']]
Ce serait une liste des lignes des colonnes 3,4 6, 7, 8, 9