Ga naar inhoud


Python vraagje omtrent datafiles en het lezen daarvan.


Con

Aanbevolen berichten

Beste medePythonezen,

 

Ik heb een datafile bestaat uit waarden in diverse kolommen, hier een fragment;

1410631980,42,9100,3744800
1410632040,39,9100,3744800
1410632100,37,9100,3744800
1410632160,35,9100,3744800
1410632220,34,9100,3744800
1410632280,33,9100,3744800
1410632340,32,9100,3744800
1410632400,31,9100,3744800
1410632460,29,9100,3744800
1410632520,29,9100,3744800
1410632580,28,9100,3744800
1410632640,27,9100,3744800
1410632700,26,9100,3744800
1410632760,25,9100,3744800
1410632820,24,9100,3744800
1410632880,23,9100,3744800
1410632940,22,9100,3744800
1410633000,22,9100,3744800
1410633060,21,9100,3744800
1410633120,20,9100,3744800
1410633180,19,9100,3744800
1410633240,18,9100,3744800
1410633300,18,9100,3744800
1410633360,17,9100,3744800
1410633420,16,9100,3744800
1410633480,15,9100,3744800
1410633540,14,9100,3744800
1410633600,13,9100,3744800
1410633660,12,9100,3744800
1410633720,11,9100,3744800

Ik moet van de tweede kolom de gemiddelde waarde hebben van de laatste 20 rijen.

En dat lukt bijna.

 

Het scriptje wat ik daarvoor gebruik is;

tmp=0
periods=60

b = open("test.txt", "r").readlines()
for n in range(0, periods):
  line = b[-n].split(",")
  tmp+= int(float(str(line[-3])))
  print int(float(str(line[-3]))), tmp
results=tmp/periods
print results

Daar krijg ik de volgende (gefragmenteerde) output van;

 

En dat is vreemd, de waarden in de eerste kolom zijn juist maar het

optellen daarvan (tmp+= int(float(str(line[-3]))) lukt niet.

 

Weet iemand wat ik fout doe en denk? 

post-36489-0-62703700-1410704717.png

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites


Gisteren en vandaag de hele dag hiermee bezig geweest, ik plaats de vraag

en ben er inmiddels zelf achter gekomen, ik heb de range op 1 moeten zetten

ipv 0.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

tail en awk hadden ook gekund denk ik :)

 

Maar goed, Con heeft het toch zelf mooi opgelost gekregen, dus respect om ook nog even terug te koppelen.

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

@De_Perre

Nee, dat ging niet. Ik was tail gewend in gnuplot, lekker makkelijk

maar Python ondersteund dat helaas niet, was een afknapper voor mij.

 

Ik heb anderhalve dag lopen tobben...

 

@Psychosammie

Ja dat kan wel, maar dan moet opa wéér iets gaan leren en ik heb het

al zo zwaar.  :grin:

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
×
×
  • Nieuwe aanmaken...