[Python] Copier certains éléments d'une liste
grandu
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai une grille de points X, Y, Z comme suit comportant beaucoup d'enregistrement :
652,300,100
653,321,102
654,326,101
658,324,106
...
J'aimerai extraire une zone précise, par exemple créer un fichier dont seuls les points avec les coordonnées x entre 651 et 655 et y entre 321 et 325 apparaissent, sachant que les points ne sont pas dans un ordre précis. J'ai essayé en python mais étant débutant c'est pas facile. Le fichier est trop gros pour excel et équivalent.
Merci
j'ai une grille de points X, Y, Z comme suit comportant beaucoup d'enregistrement :
652,300,100
653,321,102
654,326,101
658,324,106
...
J'aimerai extraire une zone précise, par exemple créer un fichier dont seuls les points avec les coordonnées x entre 651 et 655 et y entre 321 et 325 apparaissent, sachant que les points ne sont pas dans un ordre précis. J'ai essayé en python mais étant débutant c'est pas facile. Le fichier est trop gros pour excel et équivalent.
Merci
A voir également:
- [Python] Copier certains éléments d'une liste
- Liste déroulante excel - Guide
- Comment copier une vidéo youtube - Guide
- Copier plusieurs éléments - Guide
- Citizen code python avis - Accueil - Outils
- Liste déroulante en cascade - Guide
2 réponses
Bonsoir
Excel peut suppoter 65636 lignes, dans certains cas ça peut etre insuffisant.
Mais avec une petite macro, on peut eviter de charger un long fichier structuré comme le tien.
Ce petit programme tout bete lit le fichier source ligne par ligne, si les coodonnées (X,Y) sont dans l'intervalle voulu, la ligne est transférée dans le fichier destination.
Colle cette macro dans un module excel, adapte les noms de fichiers et les Mini Maxi, et execute.
Essaye dabord sur un petit fichier exemple.
Si le fichier est vraiment tres long, l'execution peut demander plusieurs dizaines de secondes.
Excel peut suppoter 65636 lignes, dans certains cas ça peut etre insuffisant.
Mais avec une petite macro, on peut eviter de charger un long fichier structuré comme le tien.
Ce petit programme tout bete lit le fichier source ligne par ligne, si les coodonnées (X,Y) sont dans l'intervalle voulu, la ligne est transférée dans le fichier destination.
Colle cette macro dans un module excel, adapte les noms de fichiers et les Mini Maxi, et execute.
Essaye dabord sur un petit fichier exemple.
Si le fichier est vraiment tres long, l'execution peut demander plusieurs dizaines de secondes.
Sub Extraction() Dim FichierSource As String, FichierDestination As String Dim X As Integer, Y As Integer, Z As Integer Dim XMini As Integer, XMaxi As Integer, YMini As Integer, YMaxi As Integer FichierSource = "F:\f1.txt" FichierDestination = "F:\f2.txt" XMini = 234: YMini = 459 XMaxi = 243: YMaxi = 468 Close Open FichierSource For Input As #1 Open FichierDestination For Output As #2 While Not EOF(1) Input #1, X, Y, Z If (X >= XMini And X <= XMaxi) And (Y >= YMini And Y <= YMaxi) Then Write #2, X, Y, Z End If Wend Close MsgBox "Extraction terminée" End Sub