[Python] [python] escludere righe vuote o commentate
Marco Giusti
marco.giusti a posteo.de
Mer 1 Feb 2023 12:43:55 CET
On 01.02.2023 11:23, Valerio Pachera wrote:
> 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 :-)
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.
Maggiori informazioni sulla lista
Python