anciennement connu sous le nom de Python Mass Editor
Implémente un éditeur de masse Python pour traiter les fichiers texte à l'aide du code Python. La ou les modifications sont (sont) indiquées sur STDOUT comme sortie DIFF. On peut ensuite modifier le (s) fichier (s) cible en place avec l'option -w / - écriture. Ceci est très similaire à l'outil 2to3 qui est expédié avec Python 3.
AVERTISSEMENT : un mot de prudence quant à l'utilisation d' eval() |
Cet outil est utile en ce qui concerne la fonction, mais il s'appuie sur la fonction Python Voir l'article de Ned Batchelder pour une discussion approfondie des dangers liés à |
Vous devrez probablement connaître les bases du module Python RE (expressions régulières).
Utilisation: massEdit.py [-H] [-v] [-w] [-v] [-e expressions] [-f fonctions]
[-x exécutables] [-s start_dirs] [-m max_depth] [-o fichier]
[-g Fichier] [- Encoding Encoding] [--newline newline]
[modèle de fichier [modèle de fichier ...]]
Éditeur de masse Python
Arguments de position:
modèle de fichier motifs de nom de fichier de type shell à traiter ou - à lire
de Stdin.
Arguments facultatifs:
-H, --help afficher ce message d'aide et quitter
-V, - Version Show du programme Afficher et sortir du programme
-W, - Écriture de modification des fichiers cibles en place. Montre Diff autrement.
-v, --verbose augmente la verbosité logarithmique (peut être spécifié multiple
fois)
-e expressions, - expressions d'expression
Expressions Python appliquées aux fichiers cibles. Utiliser le
Variable de ligne pour référencer la ligne actuelle.
-f fonctions, - fonctions de fonction
Fonction Python à appliquer au fichier cible. Prend le dossier
Contenu en entrée et en lignes de rendement. Spécifiez la fonction comme
[Module] :? <Nom de la fonction>.
-x exécutables, - Executable Exécutables
Exécutable Python pour s'appliquer au fichier cible.
-s start_dirs, --start start_dirs
Répertoire (IES) à partir de laquelle rechercher des cibles.
-m max_depth, - max-Depth-niveau max_depth
Profondeur maximale lors des sous-répertoires de marche.
Fichier -O, - Fichier
rediriger la sortie vers un fichier
Fichier -g, - Générer le fichier
Générer un fichier de stub adapté à l'option -f
- Encodage d'encodage des fichiers d'entrée et de sortie
- NEWLINE NEWline Newline Caractère pour les fichiers de sortie
Exemples:
# Substitution de cordes simple (-e). Montrera un diff. Aucune modification appliquée.
massEdit.py -e "re.sub ('défaillif', 'assertfalse', line)" * .py
# Modifications de niveau de fichier (-f). Écrasent les fichiers en place (-W).
MassEdit.py -w -f Fixer: Fixit * .py
# Modifiera tous les tests * .py dans les sous-répertoires des tests.
massEdit.py -e "re.sub ('défaillif', 'assertfalse', ligne)" -s tests test * .py
# Transformera les méthodes virtuelles (presque) en mock_method adaptées à gmock (voir https://github.com/google/googlest).
massedit.py -e "re.sub (r ' s * virtual s + ([ w: <>, s & *] +) s + ( w +) ( ([^ )] * )) s * (( w +) *) (= s * 0)?;', 'Mock_Method ( g <1>, g <2>,, g <3>, ( g <4>, remplacer)); ', ligne) "gmock_test.cpp
Si MassEdit est installé en tant que package (à partir de PYPI par exemple), on peut interagir avec lui en tant qu'outil de ligne de commande:
Python -M MassEdit -e "re.sub ('assertequals', 'assertequal', ligne)" test.py
Ou en tant que bibliothèque (option de ligne de commande ci-dessus à passer comme arguments Kewyord):
>>> Importer MassEdit
>>> filenames = ['massEdit.py']
>>> massedit.edit_files (noms de fichiers, ["re.sub ('Jerome', 'J.', line)"])
Enfin, il y a un wrapper massedit.bat pratique pour les fenêtres incluses dans la distribution.
Téléchargez massedit.py à partir de http://github.com/elmotec/massedit ou:
python -m pip install massedit
Je me retrouve à utiliser MassEdit principalement pour la modification de la source de source de grandes bases de code comme celle-ci:
Créez d'abord un module fixer.py Python avec la fonction qui traitera votre code source. Par exemple, pour ajouter un en-tête:
def add_header (lignes, file_name):
rendement '// c'est mon en-tête' # sera la première ligne du fichier.
Pour la ligne en lignes:
ligne de rendement
Ajoute l'emplacement de fixer.py à votre $PYTHONPATH , puis appelez simplement massedit.py comme ceci:
MassEdit.py -f Fixer: add_header * .h
Vous pouvez ajouter les -s . Option pour traiter tous les fichiers .h récursivement.
J'utilise des années couchées et vérifiées (à partir des outils électriques UNIX) et je n'ai pas trouvé de bon substitut sous Windows jusqu'à ce que je tombe sur Graham Fawcett Python Recepe 437932 sur ActivState. Cela m'a inspiré pour écrire le Masset.
Le noyau était un peu étoffé, et nous y voilà. Si vous le trouvez utile et améliorez-le, n'oubliez pas de soumettre des correctifs. Merci!
Si vous êtes plus intéressé par l'outil de type awk, vous trouverez probablement PYP une meilleure alternative.
Pour configurer les choses pour le développement, le plus facile est de l'installer pour le développement de la configuration supplémentaire:
Python -M Venv Venv . Venv / bin / Activer python -m pip install -e. [Develop]
Le meilleur est d'utiliser le commissen lors de la performance des validations.
Licencié en vertu de la durée de la licence du MIT. Voir le fichier joint Licence.txt.
Voir Changelog.md pour les modifications plus tard que 0,69.0
https://github.com/myint https://github.com/tgoodlet https://github.com/alfnet https://github.com/isidroas