Pages : 1
#1 Le 08/06/2020, à 00:47
- judkil
PYTHON3: liste de liste
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
Dernière modification par judkil (Le 08/06/2020, à 00:47)
Hors ligne
#2 Le 08/06/2020, à 06:52
- pingouinux
Re : PYTHON3: liste de liste
Bonjour,
Essaye ceci
import sys
def function(fichier,carac):
d = []
with open(fichier, 'r') as fa:
for line in fa:
line_split=line.split()
if line_split[2]==carac:
lig=[]
lig.extend(line_split[2:4])
lig.extend(line_split[5:9])
d.append(lig)
return d
fichier=sys.argv[1]
carac=sys.argv[2]
print(function(fichier,carac))
à appeler ainsi
python3 le_script.py fichier O
Ajouté : Plus simple
import sys
def function(fichier,carac):
d = []
with open(fichier, 'r') as fa:
for line in fa:
line_split=line.split()
if line_split[2]==carac: d.append( line_split[2:4] + line_split[5:9] )
return d
fichier=sys.argv[1]
carac=sys.argv[2]
print(function(fichier,carac))
Dernière modification par pingouinux (Le 08/06/2020, à 07:34)
Hors ligne
Pages : 1