anteriormente conocido como editor de masas de Python
Implementa un editor de masas de Python para procesar archivos de texto utilizando el código Python. Los modificaciones (s) se muestran (se muestran) en stDout como una salida DIFF. Luego se puede modificar los archivos de destino en su lugar con la opción -w/-escribir. Esto es muy similar a la herramienta 2TO3 que se envía con Python 3.
Advertencia : una advertencia sobre el uso de eval() |
Esta herramienta es útil hasta donde llega, pero depende de la función Python Consulte el artículo de Ned Batchelder para una discusión exhaustiva de los peligros vinculados a |
Probablemente necesite conocer los conceptos básicos del módulo Python RE (expresiones regulares).
Uso: Massedit.py [-h] [-v] [-w] [-v] [-e expresiones] [-f funciones]
[-x Ejecutables] [-s start_dirs] [-m max_depth] [-o archivo]
[-g archivo] [-codificación de codificación] [--Newline Newline]
[Patrón de archivo [Patrón de archivo ...]]
Editor de masas de Python
Argumentos posicionales:
Patrón de archivo de archivo Patrones de nombre de archivo tipo shell para procesar o - para leer
de Stdin.
Argumentos opcionales:
-h, --help muestra este mensaje de ayuda y salida
-V, -Version Show el número de versión del programa
-W, - -escritura modificar los archivos de destino en su lugar. Muestra diff de lo contrario.
-v, -verboso aumenta la verbosidad del registro (se puede especificar múltiples
veces)
-e expresiones, expresiones de expresión
Expresiones de Python aplicadas a archivos de destino. Usar el
Variable de línea para hacer referencia a la línea actual.
-f Funciones, -funciones de funciones
Función de Python para aplicar al archivo de destino. Toma el archivo
contenido como líneas de entrada y rendimiento. Especificar la función como
[módulo] :? <Nombre de la función>.
-x Ejecutables, -Ejecutables Ejecutables
Ejecutable de Python para aplicar al archivo de destino.
-s start_dirs, --s -star start_dirs
Directorio (IES) desde el cual buscar objetivos.
-m max_depth, --max-depth-nivel max_depth
Profundidad máxima al caminar subdirectorios.
-o archivo, -output archivo
redirigir la salida a un archivo
-g archivo, -archivo generador
Genere un archivo stub adecuado para la opción -f
-Codificación de codificación de codificación de archivos de entrada y salida
-NEWLINE NEWLINE NEWLINE CARACTER para archivos de salida
Ejemplos:
# Sustitución de cadena simple (-e). Mostrará una diferencia. No se aplicaron cambios.
Massedit.py -e "re.sub ('failif', 'afirmarfalse', línea)" *.py
# Modificaciones de nivel de archivo (-f). Sobrescribe los archivos en su lugar (-W).
Massedit.py -w -f fijador: fixit *.py
# Cambiará todas las pruebas*.py en subdirectorios de pruebas.
Massedit.py -e "re.sub ('failif', 'afirmarfalse', line)" -s prueba prueba*.py
# Transformará los métodos virtuales (casi) en MOCK_METHOD adecuado para GMOCK (ver https://github.com/google/googletest).
massedit.py -e "re.sub(r's*virtuals+([w:<>,s&*]+)s+(w+)(([^)]*))s*((w+)*)(=s*0)?;', 'MOCK_METHOD(g<1>, g<2>, g<3>, (g<4>, anular)); ', línea) "gmock_test.cpp
Si Massedit se instala como un paquete (desde PYPI, por ejemplo), uno puede interactuar con él como una herramienta de línea de comandos:
Python -M Massedit -e "re.sub ('afirmarequals', 'afirmarequal', línea)" test.py
O como una biblioteca (opción de línea de comandos anterior que se pasará como argumentos de Kewyord):
>>> Importar masa
>>> FileNames = ['Massedit.py']
>>> Massedit.edit_files (nombres de archivo, ["re.sub ('jerome', 'J.', línea)"])
Por último, hay un massedit.bat conveniente. Bat Wrapper para ventanas incluidas en la distribución.
Descargue massedit.py desde http://github.com/elmotec/massedit o:
Python -M PIP Instale Massedit
Me encuentro usando Massedit principalmente para la modificación de la fuente a la fuente de bases de código grandes como esta:
Primero cree un módulo fixer.py python con la función que procesará su código fuente. Por ejemplo, para agregar un encabezado:
def add_header (líneas, file_name):
rendimiento '// Este es mi encabezado' # será la primera línea del archivo.
Para la línea en líneas:
línea de rendimiento
Agrega la ubicación de fixer.py a su $PYTHONPATH , luego simplemente llame a massedit.py así:
Massedit.py -f fijador: add_header *.h
Puedes agregar el -s . opción para procesar todos los archivos .h reccursivamente.
He estado usando corriendo y checksed (de UNIX Power Tools) durante años y no encontré un buen sustituto debajo de las ventanas hasta que me encontré con la receta de Graham Fawcett Python 437932 en Activestate. Me inspiró a escribir el Massedit.
El núcleo se desarrolló un poco, y aquí estamos. Si lo encuentra útil y lo mejora, no olvide enviar parches. ¡Gracias!
Si está más interesado en la herramienta AWK, probablemente encontrará a PYP una mejor alternativa.
Para configurar las cosas para el desarrollo, lo más fácil es instalar la configuración de desarrollo adicional:
python -m venv venv . venv/bin/activar Python -M PIP Install -e. [Desarrollar]
Lo mejor es usar Comprizen cuando realiza comodidades.
Licenciado bajo el plazo de la licencia MIT. Consulte la licencia de archivo adjunto.txt.
Ver ChangeLog.MD para cambios más tarde de 0.69.0
https://github.com/myint https://github.com/tgoodlet https://github.com/alfnet https://github.com/isidroas