Bonjour,

je bloque sur un script depuis un petit moment et je m'arrache les cheveux

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/python
 
import os
 
os.system("find -name \"*_nt.tab\" > file_normalize_and_temp")
 
def normalize(fichier): ##fichier = nom du fichier
 
	o_fichier=open(fichier.split('\n')[0],'r')
 
	dist_col=[]
	dist_col.append(0)
	count_nt_A=[]
	count_nt_C=[]
	count_nt_T=[]
	count_nt_G=[]
	count_nt_tot=[]
	for line in o_fichier:
		line=line.split('\n')[0]
		for i in range (1,len(line.split('\t'))):
			count=0
			while count < 1:
				for n in range(1,len(line.split('\t'))):
					dist_col.append(line.split('\t')[n])
				count+=1
		if line.split('\t')[0] == "A":
			for i in range (1,len(line.split('\t'))):
				print(line.split('\t')[i],"voila ce qu'il append")
				count_nt_A.append(line.split('\t')[i])
                ## si je print la liste count_nt_A il me renvoie une liste de 10 elm MAIS
                ## si je print count_nt_A[0], la console me renvoie "index out of range"
 
		if line.split('\t')[0] == "T":
			for i in range (1,len(line.split('\t'))):
				count_nt_T.append(line.split('\t')[i])
			print(count_nt_T,"1er count nt T")
		if line.split('\t')[0] == "C":
			for i in range (1,len(line.split('\t'))):
				count_nt_C.append(line.split('\t')[i])
		if line.split('\t')[0] == "G":
			print(line.split('\t')[0])
			for i in range (1,len(line.split('\t'))):
					count_nt_G.append(line.split('\t')[i])
		#~ for i in range(0,int(len(count_nt_A)-1)): ##cette boucle ne fonctionne pas
			#~ print(i)
			#~ count_nt_tot.append(count_nt_A[i]+count_nt_T[i]+count_nt_C[i]+count_nt_G[i])

Le problème étant que je crée 4 listes, mais lorsque je cherche à printer 1 elm de la liste la console me renvoie index out of range, pourtant la liste contient bien 10 elm, je ne comprends pas d'où vient le problème...

Surement un problème trivial, mais je ne vois pas la solution...

Merci à vous pour votre aide