On 01.02.2023 11:23, Valerio Pachera wrote:
Il giorno mer 1 feb 2023 alle ore 10:25 Valerio Pachera
<siri...@gmail.com> ha scritto:

Ciao a tutti, vorrei ottenere lo stesso risultato di

grep -Ev '(^[[:blank:]]*$|^#)'

 Per ora ho usato questo approccio:

with open('file.txt') as f:
    p = re.compile('^s*$|^#.*')
    clean = [line for line in f.readlines() if not re.match(p, line)]

clean รจ una lista con le righe "buone" del file.
Notare che mantengono il n alla fine.
Per stampare quindi il contenuto mi basta fare join di una stringa
vuota.

  print(''.join(clean))

Nel mio caso specifico voglio poi portare tutto su una singola riga.

In tal caso, devo rimuovere il fine riga (usando strip) e fare il join
usando uno spazio.

with open('template.txt') as template_content:
    p = re.compile('^s*$|^#.*')
    clean = [line.STRIP() for line in template_content.readlines() if
not re.match(p, line)]
    print(' '.join(clean))

Sono comunque curioso di vedere altre implementazioni :-)

filename = "/etc/firejail/firejail.config"
clean = []

for line in open(filename):
    if line.strip() and not line.startswith("#"):
        clean.append(line)

print(clean)
['browser-disable-u2f no\n', 'restricted-network yes\n']

Se questa fosse una risposta in StackOverflow, sono sicuro che qualcuno
riprenderebbe la soluzione per trasformarla in una linea sola.

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

Rispondere a