-------- Original Message --------
On Jul 10, 2022, 19:25, Marcello Ilardi < marce...@linuxvil.it> wrote:
Salve a tutti, in un mio programma, per creare file di configurazione, utilizzo 
il seguente codice: variabili = {} variabili['IPADDRESS'] = '192.168.1.2' 
variabili['NETMASK'] = '255.255.255.0' variabili['GATEWAY'] = '192.168.1.1' 
configurazione = (f''' net.static.IP = {variabili['IPADDRESS']} 
net.static.SubnetMask = {variabili['NETMASK']} net.static.Gateway = 
{variabili['GATEWAY']} ''') print(configurazione) In questo modo mi vengono 
sostituite correttamente le variabili. adesso ho la necessità, visto la 
lunghezza di 'configurazione' (più di 1000 righe) di creare un file dove metto 
la sola variabile 'configurazione' e all'occorrenza leggere il file e impostare 
correttamente le variabili. Il problema che leggendo da un file esterno non 
riesco a sostituite le variabili tra grafe. Nel file.txt metto: net.static.IP = 
{variabili['IPADDRESS']} net.static.SubnetMask = {variabili['NETMASK']} 
net.static.Gateway = {variabili['GATEWAY']} il programma py: variabili = {} 
variabili['IPADDRESS'] = '192.168.1.2' variabili['NETMASK'] = '255.255.255.0' 
variabili['GATEWAY'] = '192.168.1.1' with open((f'''file.txt'''), "r") as 
configurazione_tmp: configurazione = configurazione_tmp.read() 
print(configurazione) Come posso risolvere? Grazie a tutti, Saluti Marcello 
_______________________________________________ Python mailing list 
Python@lists.python.it https://lists.python.it/mailman/listinfo/python

Ciao,
non so se hanno già dato la stessa risposta perché temo di essermi perso 
qualche mail, ma oltre allr alternative già citate (yaml, db, config parser) 
puoi anche formattare la stringa esplicitamente usando il metodo str.format o 
str.format_map, che fa sostanzialmente quello che viene fatto implicitamente 
quando usi le f-strings (f""). ecco un esempio per darti un'idea di come puoi 
usare format_map:

s = "foo = {bar}"
d = dict(bar="1234")
print(s.format_map(d)) # foo = 1234

comunque è un sistema fragile di sostituzione, quindi anche se potrebbe essere 
conveniente nel tuo caso, potresti optare per qualcosa di più robusto se fosse 
per un lavoro più che amatoriale.

ciao
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a