ранее известный как редактор Python Mass
Реализует редактор Python Mass для обработки текстовых файлов с использованием кода Python. Модификация (ы) показана на stdout как выход Diff. Затем можно изменить целевой файл (ы) на месте с помощью параметра -W/-записи. Это очень похоже на инструмент 2to3, который поставляется с Python 3.
Предупреждение : предупреждение о использовании eval() |
Этот инструмент полезен насколько он заходит, но он полагается на функцию Python См. Статью Неда Батчелдера для тщательного обсуждения опасностей, связанных с |
Вам, вероятно, нужно будет знать основы модуля Python Re (регулярные выражения).
Использование: massedit.py [-h] [-v] [-w] [-v] [-e выражения] [-f функции]
[-x recementables] [-s start_dirs] [-m max_depth] [-o файл]
[-g file] [-Кодирование кодирования] [-newline newline]
[шаблон файла [шаблон файла ...]]
Редактор Python Mass
позиционные аргументы:
Файл шаблона с шаблонами, похожими на оболочку, имена файла для обработки или - для чтения
от Stdin.
Необязательные аргументы:
-h, -help показывать это сообщение справки и выход
-V, -Версия и выход версии программы Show
-W, -Вар изменить целевой файл (ы) на месте. Показывает Diff в противном случае.
-v, --вербозе увеличивает многословие журнала (может быть указано множественным
раз)
-e выражения, экспрессия выражений
Выражения Python применяются к целевым файлам. Используйте
Линейная переменная для ссылки на текущую строку.
-f функции, функции функции
Функция Python для применения к целевому файлу. Принимает файл
Содержание в качестве входных и урожайных линий. Укажите функцию как
[Модуль]:? <Имя функции>.
-x исполняемые файлы, -Executable executiveables
Python Executabequebable для применения в целевом файле.
-s start_dirs, -start start_dirs
Каталог (IES), из которого можно найти цели.
-m max_depth,-max-depte-level max_depth
Максимальная глубина при ходьбе подканалистах.
-О файл, файл - -выпускной файл
перенаправить выход в файл
-g файл, -Генерационный файл
Сгенерировать файл stub, подходящий для опции -f
-Кодирование кодировки кодировки входных и выходных файлов
-Newline Newline Newline символ для выходных файлов
Примеры:
# Простая замена строки (-e). Покажет разницу. Никаких изменений не применяется.
massedit.py -e "re.sub ('failif', 'assertfalse', line)" *.py
# Модификации уровня файлов (-f). Перезаписывает файлы на месте (-W).
massedit.py -w -f fixer: fixit *.py
# Изменит весь тест*.py в подкатализации тестов.
massedit.py -e "re.sub ('failif', 'assertfalse', line)" -s -тесты*.py
# Преобразует виртуальные методы (почти) в Mock_method, подходящий для GMOCK (см. Https://github.com/google/googletest).
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 <3, , g <3, g <3, g <3, g <3, g <3, g <3, g <3, g <3, g <3, g <3, g <3, g переопределить)); ', line) "gmock_test.cpp
Если MassEdit установлен в виде пакета (например, из PYPI), можно взаимодействовать с ним в качестве инструмента командной строки:
python -m massedit -e "re.sub ('assertequals', 'assertequal', line)" test.py
Или в качестве библиотеки (опция командной строки выше, которая будет передана в виде аргументов Кьюорда):
>>> Импорт Massedit
>>> filenames = ['massedit.py']
>>> massedit.edit_files (filenames, ["re.sub ('jerome', 'J.', line)"])
Наконец, есть удобная обертка massedit.bat для окон, включенных в распределение.
Скачать massedit.py с http://github.com/elmotec/massedit или:
Python -m Pip установить MassEdit
Я использую MassEdit в основном для источника для источника модификации больших кодовых баз, как это:
Сначала создайте модуль python fixer.py с функцией, которая будет обрабатывать ваш исходный код. Например, чтобы добавить заголовок:
def add_header (lines, file_name):
Уход '// Это мой заголовок' # будет первой строкой файла.
Для строки в строках:
Линия урожая
Добавляет местоположение fixer.py в ваш $PYTHONPATH , а затем просто позвоните massedit.py , как это:
massedit.py -f fixer: add_header *.h
Вы можете добавить -s . опция обработки всех файлов .h рекордующе.
Я использовал Runsed и Checksed (от электроинструментов Unix) в течение многих лет и не нашел хорошую замену под окнами, пока не наткнулся на рецепт Python Graham Fawcett Python 437932 на Activestate. Это вдохновило меня написать Massedit.
Сердце было немного зафиксировано, и вот мы. Если вы найдете это полезным и улучшите его, не забудьте отправлять патчи. Спасибо!
Если вы больше заинтересованы в инструменте, подобном Awk, вы, вероятно, найдете PYP лучшей альтернативой.
Чтобы настроить ситуацию для разработки, самое простое-привести к установке дополнительной конфигурации:
Python -m venv venv Полем Venv/Bin/Activate Python -m Pip install -e. [Разработать]
Лучше всего использовать Commerizen при выполнении коммитов.
Лицензирован в соответствии с лицензией MIT. См. Прилагаемый файл лицензия.txt.
См. ChangeLog.md для изменений позже 0,69,0
https://github.com/myint https://github.com/tgoodlet https://github.com/alfnet https://github.com/isidroas