[Python] Copier certains éléments d'une liste
Fermé
grandu
-
29 mars 2011 à 20:55
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 29 mars 2011 à 23:48
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 29 mars 2011 à 23:48
A voir également:
- [Python] Copier certains éléments d'une liste
- Liste déroulante excel - Guide
- Comment copier une vidéo youtube - Guide
- Liste déroulante en cascade - Guide
- Citizen code python avis - Accueil - Outils
- Copier coller plusieurs éléments - 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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 29/03/2011 à 23:57
Modifié par fiddy le 29/03/2011 à 23:57
Bonjour,
En python, cela donnerait simplement :
Cdlt,
Google is your friend
En python, cela donnerait simplement :
#A represente ta liste A=[(652,300,100),(653,321,102),(654,326,101),(658,324,106)] #B represente l'extraction B=[(x,y,z) for x,y,z in A if x in range(651,655) and y in range(321,325)] print B
Cdlt,
Google is your friend