2009-10-25 9 views
6

Y at-il un programme que je peux courir comme ceci:Comment puis-je supprimer les commentaires et les chaînes de documentation du code source python?

py2py.py <orig.py> smaller.py 

Où orig.py contient le code source python avec des commentaires et des chaînes de documentation et smaller.py contient le code source identique, runnable mais sans les commentaires et doc cordes?

Code qui à l'origine ressemblait à ceci:

#/usr/bin/python 
"""Do something 
blah blah... 
""" 

# Beware the frubnitz! 
def foo(it): 
    """Foo it!""" 
    print it # hmm? 

doit ressembler à ceci:

def foo(it): 
    print it 

Répondre

8

This Python minifier ressemble il fait ce que vous avez besoin.

+0

Excellent. «minify» était le mot magique. –

2

Je recommande minipy. La raison la plus convaincante est qu'elle fait une analyse correcte de l'arbre de syntaxe du code source, de sorte que le code réduit est beaucoup plus précis. J'ai trouvé que le plus connu pyminifier a tendance à générer du code avec des erreurs de symboles non définies, des tuples mal interprétés, etc. J'ai également obtenu quelques résultats de compression de quelques pour cent meilleurs avec minipy. Un avantage mineur de minipy est que c'est moins de la moitié de la taille du code de pyminifier. Il est également plus facile à gérer et à intégrer dans un pipeline de build car il s'agit d'un seul fichier python autonome.

+0

Upvoted, mais notez que minipy ne supporte que Python 2. –

+1

@JohnMcGehee avec quelques changements triviaux J'ai été capable de contourner les 2-isms python les plus évidents et il supporte maintenant le code python 3 que je suis en train de minifier. Voici le changement: https://github.com/kanaka/minipy/commit/dfd0216ec55bae536664155ea38270520d14fe27 – kanaka