Manual:Pywikibot/replace.py/ru

Replace.py — это часть системы википедиа-ботов, написанных на языке программирования Питон.

Этот бот служит для замены текста. Он получает информацию о страницах, в которых требуется замена, из дампа XML или из текстового файла, либо же изменяет одну страницу, явно указанную в параметрах командной строки -page (см. ниже). Чтобы получить дополнительную информацию, используйте синтаксис

python replace.py -help

Файлы
Этот бот использует три особых файла:


 * replace.py : главный модуль
 * fixes.py : список некоторых стандартных замен
 * user-fixes.py : файл со списком пользовательских замен. Этот файл можно создать (с примером замены) при помощи скрипта generate_user_files.py.

Файлы которые можно использовать для ввода и/или вывода:


 * filename.txt : файл со списком статей, подлежащих обработке, название этого файла передаётся скрипту при помощи параметра «-file»
 * filename.xml : локальный XML дамп, который можно использовать при помощи параметра «-xml»
 * replacelog : файл отчёта (лог), имя этого файла передаётся скрипту при помощи параметра «-log»

Параметры
Вы можете запускать скрипт replace.py со следующими параметрами (например, ).

Примеры
Если вы хотите поменять синтаксис шаблона, например со старого на новый, загрузите XML дамп (таблицу страниц) с https://dumps.wikimedia.org и используйте команду:

python replace.py -xml -regex "" ""

Обратите внимание что можно использовать парметры и из нескольких строк:

python replace.py -regex -start:! "Первая строка\nВторая строка" ""

Replace.py можно использовать для вставки или добавления текста на страницу (обратите внимание, что добавляемый текст содержит добавляемую новую строку)):

python replace.py -regex '(?ms)^(.*)$' "\1   > "

Если у вас есть дамп foobar.xml и вы хотите исправите ошибку, например Ошипка → Ошибка, используйте такой формат:

python replace.py -xml:foobar.xml "Ошипка" "Ошибка"

Если у вас есть страниц под названием «John Doe» и вы хотите преобразовать в ней тэги HTML в вики-разметку, используйте такой вызов скрипта: syntax, use: python replace.py -page:John_Doe -fix:HTML

Если вы запускаете скрипт без аргументов, вам будет предложено их ввести:

python replace.py -file:blah.txt

Скрипт запрашивает у пользователя разрешения на модификацию страниц. Рекомендуем вам дважды проверять текст чтобы не внести ошибки на страницы (особенно проверяйте текст на отсутствие опечаток). Можно создать файл со списком страниц для замены:

plane vehicle train car

Затем вызвать скрипт для этих страниц примерно в таком виде:

python replace.py [global-arguments] -file:articles_list.txt "Ошипка" "Ошибка"

Предпочтительнее задавать регулярные выражения не в командной строке, а в файле user-fixes.py

python replace.py -file:articles_list.txt -fix:example2

Пример: Замена нескольких абзацев
Исходный текст на Sandbox: This page is for any tests.

Welcome to the sandbox!

Если вы хотите изменить порядок этих абзацев (второй сделать первым), используйте такой синтаксис:

replace.py -page:Meta:Sandbox -regex "This page is for any tests.\r\n\r\nWelcome to the sandbox!" "Welcome to the sandbox!\n\nThis page is for any tests."

Чтобы добавить новую строку, используйте.

Ссылки

 * The Python Standard Library Regular expression operations
 * Kodos - The Python Regular Expression Debugger - to test regular expressions specifically for python
 * Regular-Expression.Info - introduction and comparison of various regex implementations, including python