Pages : 1
#1 Le 25/05/2020, à 01:59
- judkil
(Python3) extraire des lignes
Bonjour !
Je débute en python 3 et j'aimerai savoir si quelqu'un saurait comment :
ma_liste.txt
VALUE CD2 TYR D 145 12.280 -5.995 27.749
VALUE CZ TYR D 145 14.570 -6.431 28.243
VALUE ND HIS D 146 5.716 -9.212 31.497
VALUE CD HIS D 146 7.731 -9.936 31.069
TER OX HIS D 146
HETVAL FE HEM 142 8.657 12.035 27.628
HETVAL CHC HEM 142 8.220 10.950 24.353
J'aimerai créer une fonction qui prend en entrée ma_liste.txt et qui écrit un nouveau fichier ma_liste2.txt, en ne prenant en compte que les lignes où est écrit VALUE et TER puis qui recommence la numérotation à 0 et non plus à 145 (colonne 5) en suivant les changement de la colonne 3.
Voici un exemple du ficier output
ma_liste2.txt
VALUE CD2 TYR D 0 12.280 -5.995 27.749
VALUE CZ TYR D 0 14.570 -6.431 28.243
VALUE ND HIS D 1 5.716 -9.212 31.497
VALUE CD HIS D 1 7.731 -9.936 31.069
TER OX HIS D 1
Merci beaucoup !
Dernière modification par judkil (Le 25/05/2020, à 16:18)
Hors ligne
#2 Le 25/05/2020, à 07:27
- Compte supprimé
Re : (Python3) extraire des lignes
Bonjour,
les valeurs 00 pour la ligne 1 puis 1 pour la ligne 2 puis 2 pour la ligne 3...
Ce n'est pas ce que je vois sur ton exemple donné pour ma_liste2...
#3 Le 25/05/2020, à 16:04
- judkil
Re : (Python3) extraire des lignes
Voilà j'ai effectué quelques simplifications et j'ai tenté mieux expliquer le problème.
Si quelqu'un aurait une idée, je suis ok !
Dernière modification par judkil (Le 25/05/2020, à 16:04)
Hors ligne
#4 Le 25/05/2020, à 16:17
- pingouinux
Re : (Python3) extraire des lignes
Bonjour,
#!/usr/bin/env python3
with open('ma_liste.txt','r') as f, open('ma_liste2.txt','w') as g:
for lig in f:
ligspl=lig.split()
if ligspl[0]=='VALUE' or ligspl[0]=='TER':
ligspl[4]=str(int(ligspl[4])-145)
g.write('%s\n'%' '.join(ligspl))
Hors ligne
#5 Le 25/05/2020, à 16:48
- judkil
Re : (Python3) extraire des lignes
Merci beaucoup mais est-ce sous forme d'une fonction cela donnerait quelque chose comme:
#!/usr/bin/env python3
with open('ma_liste.txt','r') as f, open('ma_liste2.txt','w') as g:
def nouveau(ma_liste.txt):
for lig in f:
ligspl=lig.split()
if ligspl[0]=='VALUE' or ligspl[0]=='TER':
ligspl[4]=str(int(ligspl[4])-145)
g.write('%s\n'%' '.join(ligspl))
return g
Hors ligne
#6 Le 25/05/2020, à 16:57
- pingouinux
Re : (Python3) extraire des lignes
#!/usr/bin/env python3
def nouveau(fichier_in,fichier_out):
with open(fichier_in,'r') as f, open(fichier_out,'w') as g:
for lig in f:
ligspl=lig.split()
if ligspl[0]=='VALUE' or ligspl[0]=='TER':
ligspl[4]=str(int(ligspl[4])-145)
g.write('%s\n'%' '.join(ligspl))
nouveau('ma_liste.txt','ma_liste2.txt')
Hors ligne
#7 Le 25/05/2020, à 17:22
- judkil
Re : (Python3) extraire des lignes
Le fichier ma_liste2.txt est un output issu d'opérations sur ma_liste1.txt. Initialement il n'existe pas. Si je lui donne en argument cela ne va pas bloquer ?
Dernière modification par judkil (Le 25/05/2020, à 17:22)
Hors ligne
#8 Le 25/05/2020, à 17:30
- pingouinux
Re : (Python3) extraire des lignes
Le fichier ma_liste2.txt est un output issu d'opérations sur ma_liste1.txt. Initialement il n'existe pas. Si je lui donne en argument cela ne va pas bloquer ?
Le fichier ma_liste2.txt va être créé s'il n'existe pas, et écrasé s'il existe déjà.
Hors ligne
Pages : 1