IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Remplir un fichier csv par le haut , tout en conservant les autres lignes


Sujet :

Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Par défaut Remplir un fichier csv par le haut , tout en conservant les autres lignes
    Bonjour,

    Je cherche actuellement à remplir un ficher CSV avec les données d'un compteur.
    Mais n'étant pas un expert en python3, je bloque un peu car j'aimerai avoir dans mon fichier csv le dernier relevé sur la première ligne.
    Alors voici ou je suis rendu.
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    #!/usr/bin/python3.4.2
    # -*- coding: utf-8 -*-
    import sys
    import os
    import time
    import datetime
    import subprocess
    import csv
     
    with open("compteur_data.csv","w") as csvfile:
                date = datetime.datetime.today()
                wtr=csv.writer(csvfile, delimiter=',')
     
                def csvcount(): #elle compte le nombre de ligne
                    with open("compteur_data.csv", 'r') as f:
                        i = 0
                        for ligne in f:
                            i += 1
                    return i
     
     
     
                def lines(j):# elle réecrit les lignes à la ligne du dessous enfin elle devrais je plante toujours dans cette boucle
     
     
                    if  j == 0 :
                        x=1
                    elif j != 0:
                        with open("compteur_data.csv", 'r') as f:
                            for ligne in f:
                            i=j
                                with open("compteur_data.csv", 'r') as f1:
                                    line=list(f1)[i]
                                    f1.close
     
                                    with open("compteur_data.csv", 'w') as f2:
                                        i=+1
                                        f2.write(line)
                                        f2.close
     
     
                            x=1
                            f.close
                    return x
                    chaine8="mes données"
     
                    print (chaine8[:-3])
                    sys.stdout.flush()
     
                    i = csvcount()
                    x = lines(i)
     
                    if x==1:
                        wtr.writerow([now,chaine8[:-3])
     
                    csvfile.flush()
     
                    time.sleep(5)
    En gros je plante ( erreur: mon programme plante à la deuxième acquisition et me retourne :list index out of range, problème de taille ? je vais taper dans un espace pas encore alloué..?) dans la deuxième fonction dans laquelle j'essaye recopier mes lignes, à la ligne suivante du fichier, bref je suis pas trop sure, de la manière dont attaqué le problème. Y a t'il peut être un mode d'écriture, qui realise mon souhait enfait j'aimerai savoir s'il y a un moyen de se repérer dans mon fichier csv, pour me permettre d'écrire à la première ligne..( j'ai fouiller un peu la doc peut être line_num peut aidé ?).
    Car même en décalant mes lignes d'une lignes comme je cherche à le faire je ne suis pas sure que la fonction writerow viendra écrire dans la 1er ligne qui sera maintenant vide ou bien qu'il continura à écrire sur la ligne vide la plus basse du fichier.
    Merci de votre attention
    PS: j'arrive à implémenter mes tabulation donc j'ai mit en lien mon code
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/03/2014, 14h40
  2. fichier csv par macro
    Par jnmab dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/12/2007, 23h31
  3. Lecture fichier .csv par colonne
    Par BRAUKRIS dans le forum Langage
    Réponses: 3
    Dernier message: 05/10/2007, 14h08
  4. [Macro] ouverture d'un fichier csv par macro différent du double-clic
    Par Caro-Line dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/04/2007, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo