Forum >> Programmazione Python >> Files e Directory >> creare un file ogni 24 ore

Pagina: 1

Salve a Tutti,
ho fatto un piccolo script che gira su raspberry collegato alla seriale di un gps.

apre la seriale e mi scrive tutto cio che riceve in un file che viene chiamato (data + ora 'stazione1.txt')

funziona bene solo che vorrei fare in modo da far chiudere il file alle 23.59.59 e farlo riaprire con la data del gg seguente.
in poche parole vorrei avere dei files giornalieri invece di un unico grande files.......mi date qualche indizio please?????
ecco il mio codice:
qualsiasi consiglio e bene accetto ;) ;)





import serial
import time
import datetime



timestr = time.strftime("%Y%m%d-%H%M%S") #mese giorno anno ore minuti
indirizzo = '/dev/ttyUSB0' #indirizzo dove andare a leggere i dati
baud = 9600 #baud rate per la porta seriale
file_name = 'stazione1.txt' #nome del file
moode = 'a' #append



streaming = serial.Serial(indirizzo,baud)


timestr = time.strftime("%Y%m%d-%H%M%S")


try:
streaming.isOpen()

print ('la porta : ',indirizzo +' è aperta')

except:

('Errore')

exit()


if (streaming.isOpen()):

contatore=0

while True :

linea= str(streaming.readline())

contatore += 1

contatoreSTR=str(contatore) #devo convertire in stringa altrimenti non scrive sul file

linea2=(contatoreSTR +linea)

fo = open(timestr+file_name,fmode)

fo.write(linea2)






else:

print(indirizzo +' non si apre')





io per la creazione di un file di testo utilizzo il modulo pickle. ora, lo script sotto crea e lavora con un unico file, nominato da me test.txt
tu se vuoi fare una cosa giornaliera basta che quell'indirizzo fisso lo trasformi come concatena (chessò, nome fisso + data giornaliera) e lui ti produce un file nuovo


import pickle




#per leggere il contenuto

def leggere():

    test_file = open('C:\\Users\\Desktop\\test.txt') #notare che va messa la doppia barra per evitare di confondere python invocando una funzione

    text = test_file.read()

    print(text)

    test_file.close()




#per scrivere il contenuto

def scrivere():

    text = input("inserisci il testo:  ") #io ho messo input, tu alla variabile text 

    test_file = open('C:\\Users\\Desktop\\test.txt', 'w')

    test_file.write(text)

    test_file.close()


Ti ringrazio per la risposta....ma credo che il tuo esempio non faccia quello che sto cercando di fare.....
e credo che tu non abbia bisogno di importare pikle per scrivere o leggere un file.

Io devo :

1 prendere delle stringhe che in continuazione escono dalla seriale




2 scriverle in un file con il nome della data e ora Dell inizio del file.




3 alle 23:59:59 chiudere il file.




4 punto 1







5 punto 2




6punto 3 etc etc
ah sinceramente non so come si faccia senza pickle, io l'ho imparato a usare leggendolo da un libro e mi trovo bene.



comunque pickle secondo me fa a caso tuo, con 3 righe di codice ti apre un file txt e ci scrivi dentro quello che vuoi e poi lo chiudi.

poi visto che la data cambia, come ti ho detto col concatena cambi nome al file txt e ti crea un altro file e così via


--- Ultima modifica di stix77 in data 2017-08-30 17:01:13 ---


Pagina: 1



Esegui il login per scrivere una risposta.