#!/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 i=0 if j == 0 : x=1 elif j != 0: with open("compteur_data.csv", 'r') as f: for ligne in f: 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 while True: #boucle des relevés now = datetime.datetime.today() now = now.replace(second=0, microsecond=0) cmd = 'sdm120c -a 1 -b 2400 -f -v -c -p -t -P N -S 2 -j 20 -z 1 /dev/ttyUSB0' #commande compteur print (now) out=os.popen(cmd,"r").read() chaine=str(out) chaine2=chaine.replace('\n',',') chaine3=chaine2.replace('OK','') chaine4=chaine3.replace('Total Active Energy:','') chaine5=chaine4.replace('Voltage:','') chaine6=chaine5.replace('Current:','') chaine7=chaine6.replace('Power:','') chaine8=chaine7.replace('Frequency:','') print (chaine8[:-3]) sys.stdout.flush() i = csvcount() x = lines(i) if x==1: wtr.writerow([now,chaine8[:-3]]) csvfile.flush() time.sleep(5)