Come posso rimuovere commenti e stringhe di documenti dal codice sorgente di Python? [chiuso]
-
06-07-2019 - |
Domanda
Esiste un programma che posso eseguire in questo modo:
py2py.py < orig.py > smaller.py
Dove orig.py contiene il codice sorgente di Python con commenti e stringhe di documenti, e smaller.py contiene un codice sorgente identico, eseguibile ma senza i commenti e le stringhe di documenti?
Codice che originariamente assomigliava a questo:
#/usr/bin/python
"""Do something
blah blah...
"""
# Beware the frubnitz!
def foo(it):
"""Foo it!"""
print it # hmm?
Sarebbe quindi così:
def foo(it):
print it
Soluzione
Questo minificatore Python sembra fare ciò di cui hai bisogno.
Altri suggerimenti
Raccomando minipy . Il motivo più convincente è che esegue un'analisi corretta dell'albero di sintassi dell'estratto del codice sorgente, quindi il codice minimizzato è molto più accurato. Ho scoperto che il più noto pyminifier tende a generare codice con errori di simbolo indefiniti, male interpretato tuple, ecc. Ho anche ottenuto risultati di compressione migliori di qualche percento con minipy. Un vantaggio minore di minipy è che è meno della metà della dimensione del codice di pyminifier. È anche più facile da gestire e integrare in una pipeline di build perché è un singolo file Python autonomo.