[Python] [python] escludere righe vuote o commentate

Valerio Pachera sirio81 a gmail.com
Mer 1 Feb 2023 11:23:28 CET


Il giorno mer 1 feb 2023 alle ore 10:25 Valerio Pachera <sirio81 a 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 :-)
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20230201/f25dcadd/attachment.html>


Maggiori informazioni sulla lista Python