anteriormente conhecido como editor de massa Python
Implementa um editor de massa do Python para processar arquivos de texto usando código Python. As modificações são (s) são mostradas no stdout como uma saída diff. Pode-se modificar o (s) arquivo (s) de destino (s) com a opção -w/-gravar. Isso é muito semelhante à ferramenta 2TO3 que é enviada com Python 3.
Aviso : Uma palavra de cautela sobre o uso de eval() |
Essa ferramenta é útil, mas depende da função Python Veja o artigo de Ned Batchelder para uma discussão aprofundada sobre os perigos vinculados a |
Você provavelmente precisará conhecer o básico do módulo Python RE (expressões regulares).
Uso: Massedit.py [-h] [-v] [-w] [-v] [-e Expressions] [-f Funções]
[-x executáveis] [-s start_dirs] [-m max_depth] [-o arquivo]
[-g file] [--ncoding coding] [--newline newline]
[padrão de arquivo [padrão de arquivo ...]]
Editor de massa em Python
Argumentos posicionais:
padrões de nome de arquivo do padrão de arquivo de arquivo para processar ou - para ler
de stdin.
Argumentos opcionais:
-h, --help Mostra esta mensagem de ajuda e saída
-V, --version Show Número da versão e saída do programa
-w, - -Write Modifique os arquivos de destino (s) no local. Mostra diff outro.
-v, --verbose aumenta a verbosidade do log (pode ser especificado múltiplo
tempos)
-e Expressões, -Expressões de expressão
Expressões Python aplicadas aos arquivos de destino. Use o
Variável de linha para fazer referência à linha atual.
-f funções, -funções de função
Função python a ser aplicada ao arquivo de destino. Pega o arquivo
conteúdo como linhas de entrada e rendimento. Especifique a função como
[Módulo]:? <Nome da função>.
-x executáveis, -executáveis executáveis
Python executável para aplicar no arquivo de destino.
-s start_dirs, - -start start_dirs
Diretório (s) para procurar alvos.
-m max_depth,-max-de-profundidade max_depth
Profundidade máxima ao caminhar subdiretos.
-o arquivo, - -output arquivo
redirecionar a saída para um arquivo
-g arquivo, -arquivo -generado
gerar arquivo de stub adequado para -f opção
-Encodes de codificação de codificação de arquivos de entrada e saída
-Novo caractere newline newline para arquivos de saída
Exemplos:
# Substituição simples de string (-e). Mostrará um diff. Nenhuma alteração aplicada.
MassEdit.py -e "re.sub ('falheif', 'assertfalse', line)" *.py
# Modificações de nível de arquivo (-f). Substitui os arquivos no lugar (-w).
massedit.py -w -f fixador: fixit *.py
# Alterará todo o teste*.py nos subdiretos dos testes.
MassEdit.py -e "re.sub ('falheif', 'assertfalse', line)" -s testes testes*.py
# Transformará os métodos virtuais (quase) em Mock_method adequado para GMOCK (consulte https://github.com/google/googletest).
massedit.py -e "re.sub (r ' s*virtual s+([ w: <>, s &*]+) s+( w+) ( ([^)]*)) s*(( w+)*) (= s*0)? g <3>, ( g <4>, substituir)); ', linha) "gmock_test.cpp
Se o MassEdit for instalado como um pacote (da Pypi, por exemplo), pode -se interagir com ele como uma ferramenta de linha de comando:
Python -m MassEdit -e "Re.Sub ('Assertequals', 'Assertequal', Line)" test.py
Ou como uma biblioteca (opção de linha de comando acima para ser passada como argumentos de kewyord):
>>> Importar MassEdit
>>> nomes de arquivos = ['MassEdit.py']
>>> MassEdit.edit_files (nomes de arquivo, ["re.sub ('Jerome', 'J.', Line)"]))
Por fim, há um invólucro conveniente massedit.bat para Windows incluído na distribuição.
Baixe massedit.py em http://github.com/elmotec/massedit ou:
python -m pip install Massedit
Encontro -me usando o MassEdit principalmente para a modificação de origem para fonte de grandes bases de código como esta:
Primeiro, crie um módulo Python fixer.py com a função que processará seu código -fonte. Por exemplo, para adicionar um cabeçalho:
DEFT add_header (linhas, file_name):
render '// Este é o meu cabeçalho' # será a primeira linha do arquivo.
Para linha nas linhas:
linha de rendimento
Adiciona a localização do fixer.py ao seu $PYTHONPATH e, em seguida, basta ligar para massedit.py como este:
massedit.py -f fixador: add_header *.h
Você pode adicionar os -s . opção para processar todos os arquivos .h reccursivamente.
Eu uso o RUNSED e o verificação (da UNIX Power Tools) há anos e não encontrei um bom substituto no Windows até encontrar a receita de Graham Fawcett Python 437932 no Activestate. Isso me inspirou a escrever o Massedit.
O núcleo foi desenvolvido um pouco, e aqui estamos nós. Se você achar útil e aprimorá -lo, não se esqueça de enviar patches. Obrigado!
Se você estiver mais interessado em uma ferramenta AWK, provavelmente achará o PYP uma alternativa melhor.
Para configurar as coisas para o desenvolvimento, o mais fácil é instalar a configuração de desenvolvimento extra:
python -m venv venv . venv/bin/ativação python -m pip install -e. [desenvolver]
O melhor é usar o Commitizen ao executar compromissos.
Licenciado sob o prazo da licença do MIT. Consulte o arquivo anexado License.txt.
Consulte Changelog.md para alterações depois de 0,69,0
https://github.com/myint https://github.com/tgoodlet https://github.com/alfnet https://github.com/isidroas