有没有办法在pywikibot replace命令中使用变量“当前页面的标题”?

时间:2019-04-23 10:35:29

标签: wikipedia pywikibot

我希望我的pywikibot删除

| name = whatever
如果名称与替换功能的页面标题相同,请从Wikipedia信息框中输入

。有没有简单的方法可以做到这一点?

要使用的代码应如下所示:

$ python pwb.py replace -regex " *\| *name *\= "TITLEPAGE" *\n" ""

但是我不确定pywikibot中是否存在此选项。

1 个答案:

答案 0 :(得分:0)

不幸的是,没有像这样的简单方法。但是您可以通过轻松地创建自己的replace.py脚本来最终在代码内部使用它。之后,您可以使用类似的内容:

$ python pwb.py my_replace.py

脚本/用户脚本/my_replace.py的内容如下:

# -*- coding: utf-8  -*-

import pywikibot, re

site = pywikibot.Site()
page = pywikibot.Page(site, 'Page you want to edit')
new_text = re.sub(r' *\| *name *\= ' + re.escape(page.title()) + r' *\n', r'', text)
page.text = new_text
page.save('remove param with page title')

或者您可以使用generator来生成页面列表,例如:

# -*- coding: utf-8  -*-

import pywikibot, re
from pywikibot import pagegenerators

site = pywikibot.Site()
cat = pywikibot.Category(site,'Category:Pages with title in param')
gen = pagegenerators.CategorizedPageGenerator(cat)

for page in gen:
    new_text = re.sub(r' *\| *name *\= ' + re.escape(page.title()) + r' *\n', r'', text)
    page.text = new_text
    page.save('remove param with page title')

有关更多详细信息,请参见https://www.mediawiki.org/wiki/Manual:Pywikibot/Create_your_own_script