最新更新和说明: 对于那些真正不明白为什么要这样做的人,我在Python中使用了Excel API。 Python脚本将从Excel电子表格中提取字符串以进行自动化测试,并在完成后将结果返回到Excel。我也会更新一个数据库,但由于我们在讨论中遇到的困难,我已经放弃了这个想法以及对这个项目的Excel需求。
例如,我知道你可以......
my_string = "driver.find_element_by_id(%s).click()" % foo
但是如何将数据应用于已分配的字符串。什么是Pythonic的方式......
my_string = 'driver.find_element_by_id(%s).click()'
new_string = my_string % foo
UPDADED:玩引号让我陷入困境。不完全是我想要的最终产品,但这是现在的工作......
这些str对象从另一个源引入(因此在分配变量之前无法连接)...
a = "driver.find_element_by_id('%s').click()"
sel_selector = "foo"
my_string = a % sel_selector
eval(my_string)
我从Excel电子表格中捕获数据的大多数逻辑都被忽略了,但这就是它变得如此复杂的原因。它是一个从电子表格中提取数据的脚本,因此我们可以进行自动回归测试来更新工作表。
答案 0 :(得分:1)
使用format()
功能,您可以做到这一点,但我不知道它是否与您正在使用的任何功能兼容:
>>> a = "hello {}"
>>> a
'hello {}'
>>> a.format("dave")
'hello dave'
它也适用于%
格式,但我觉得它不那么漂亮:)。
>>> a = "hello %s"
>>> a
'hello %s'
>>> a % "dave"
'hello dave'
阅读完评论后,我可以使用exec
执行您想要的操作,如下例所示:
>>> command = "lst = [i**2 for i in range({})]"
>>> exec command.format(10) #Performs identically to lst = [i**2 for i in range(10)]
>>> lst
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> exec command.format(4) #Performs identically to lst = [i**2 for i in range(4)]
>>> lst
[0, 1, 4, 9]
有关完整说明,请参阅this post。