Posted on January 24, 2017 by admin

Lo snippet del giorno – merge di file di testo

Nella vita di ogni informatico non dovrebbe mancare uno storico, la documentazione di quello che si fa.
Personalmente credo che sia importante ritrovare nel minor tempo possibile quanto già fatto, che sia la configurazione di un server, che sia un HACK per far funzionare quel programma che sappiamo continuerà ad avere quel bug perchè lo sviluppatore è sparito.

Ci sono diversi modi per tener traccia di questo.
-Chi si scrive un blog, come il sottoscritto.
-Chi si scrive dei files di testo, come il sottoscritto.
-Chi utilizza applicazioni ad hoc, come il sottoscritto.
-Chi crede di saperlo sempre a mente, sbagliando.

Poi sorge il problema di ricordarsi dove lo si era scritto, perchè per una questione o per un’altra, non sempre si ha a disposizione una connessione ad Internet o l’accesso all’applicazione in cloud; non sempre si vuole tenere nella rete informazioni confidenziali perché siete dei paranoici.

A me piace tenere dei files di testo separati secondo il progetto al quale sto lavorando. Nonostante ciò alcune cose, script e procedure, si utilizzano in diversi progetto. E allora sì che scatta il delirio.

Questo veloce script in python fà il merge di tutti i files di testo presenti in una cartella.
Produrrà un file output.txt nella cartella superiore con: nome del file ed il suo contenuto.
Potete sempre migliorarlo secondo la vostra condizione, fargli attraversare directory o cambiare il tipo di files sui quali fare il merging in un unico file, del codice sorgente ad esempio.

[code language=”python” gutter=”false”]
import glob, os

os.chdir(“.”)
filenames=[]

for file in glob.glob(“*.txt”):
filenames.append(file)
print filenames

with open(‘../global.txt’, ‘w’) as outfile:
for fname in filenames:
header=”\n”+fname+”\n”
outfile.write(header)
with open(fname) as infile:
for line in infile:
outfile.write(line)
[/code]