将变量插入文本搜索字符串

时间:2014-02-19 19:37:02

标签: python python-2.7

这两行来自执行维基百科短语搜索的程序,并返回特定短语出现的总次数。搜索包含撇号是必不可少的:

results = w.search("\"of the cat's\"", type=ALL, start=1, count=1)
print results.total

我想用变量替换“cat”这个词,例如

q = "cat"

这样我就可以为不同单词列表生成相同的搜索格式。如何格式化搜索字符串以包含变量?

2 个答案:

答案 0 :(得分:0)

使用Python,你可以做到:

q = "cat"
results = w.search("\"of the " + q + "'s\"", type=ALL, start=1, count=1)
print results.total

还有

q = "cat"
results = w.search("\"of the %s's\"" & q, type=ALL, start=1, count=1)
print results.total

q = "cat"
results = w.search("\"of the {query}'s\"".format(query=q), type=ALL, start=1, count=1)
print results.total

请参阅此post以获取更详细的讨论,包括效果。

答案 1 :(得分:0)

首先,Python有一些有用的字符串方法,我觉得这对你很有帮助。在这种情况下,我们将使用format函数。另外,请勿'"对我进行恐吓。你可以用反斜杠来逃避它们。演示:

>>> a = '\''
>>> a
"'"

看看单引号是如何夹在这些双引号之间的?

你可以用双引号做同样的事情:

>>> a = "\""
>>> a
'"'
>>> 

现在,要回答您的问题,您可以使用字符串类附带的.format函数(无需导入)。

让我们看看:

>>> a = "{}\'s hat"
>>> a.format("Cat")
"Cat's hat"
>>> a.format("Dog")
"Dog's hat"
>>> a.format("Rat") # Rats wear hats?
"Rat's hat"
>>> 

在您的情况下,您可以简单地执行此操作:

w.search("\"of the {}'s\"".format(<your animal here>), type=ALL, start=1, count=1)