Ga naar inhoud


Tekst(data)file met python klein houden, hoe doe je dat?


Con

Aanbevolen berichten

En hier tenslotte wat het is geworden, ik maak gelijk een backup.
 


import time
import fileinput
import sys
import datetime
from datetime import datetime

t = datetime.now().strftime("%d%m%Y")

# org = origineel
# bak = backup
# dat = data

#Opent en leest het originele bestand
org = open( 'log.txt', "r" )
dat = org.readlines()
org.close()

#Laat de laatste 1440 regels (1 complete dag) staan en schrijft deze weg
del dat[:-1440]
org = open("log.txt", "w")
org.writelines(dat)
org.close()

#Maakt een backup op datum uit angst in een subdirectory
bak = open("backup/backup" + str(t) + ".txt", "w")
bak.writelines(dat)
bak.close()
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


Ziet er netjes uit Con... Maar er is een "iets" eenvoudiger manier... Als je een cron job laat lopen elke dag op hetzelfde tijdstip, dan heb je altijd een log van 1440 regels... Je "moved" de log gewoon naar je backup lokatie. Op die manier "verdwijnt" je log bestand, en zal er elke keer een nieuw bestand worden aangemaakt. 

Dus even simpel shell script:

#!/bin/bash
# Naar de juiste directory...
cd <directory met je log>
# De huidige datum even opslaan in een variabele
NU = $(date +"%d%m%Y")
# Log verplaatsen naar backup directory
/bin/mv log.txt backup/backup-$NU.txt
# Aangezien het logbestand niet meer bestaat, maken we een bestand met lengte "0" aan
/bin/touch log.txt

OK, niet getest, dus kan niet helemaal foutloos wezen... :)

Het is gewoon een andere manier om hetzelfde te bereiken...

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Ja, eigenlijk heel simpel. Sterker nog, gewoon verplaatsen naar

een subdirectory kan ook nog.

 

Mijn logscript maakt vanzelf wel weer een nieuw bestand aan met het fragment;

f=open("log.txt", "a+", 1)
 

Toch denk ik dat ik in de problemen kom.

Omdat, maar dat moet ik uitzoeken, gnuplot (het grafisch pakket

wat ik gebruik), minimaal 60 regels moet hebben om verder te kunnen.

 

Maar vind het wel een heldere aanvulling dat mij zwaar aan het denken zet, toppie.

 

Morgen, als ik weer fris en fruitig ben ga ik het nog eens lezen en zien

wat ik zelf heb gezegd.  :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...