【发布时间】:2017-09-01 18:21:18
【问题描述】:
我有一个循环,我在其中更改一个列表,然后使用format 构建一个新字符串。使用此行时
strCommand = strCommand.format(*strCmdVars)
我发现当我遍历我的数据时字符串不会更新,strCommand 将保持其原始值。但是当我把它改成这个
strCmd = strCommand.format(*strCmdVars)
事情开始按预期工作。 我是偶然发现了什么奇怪的东西,还是我第一次做错了什么? 这是在 Windows 7 上的 Python 版本 3.4.3 下运行的。 以下是一些需要处理的细节:
strCommand = "show run {0} access-list {1}"
strCmdVars = ["ipv6","FWG31"]
在实际脚本中,我像这样使用 append 初始化 strCmdVars
strCmdVars.append(parts1)
strCmdVars.append(parts2)
然后,当我在循环结束时遍历我正在读取的文件(这是parts1 和parts2 的值的来源)时,我会这样做
strCmdVars[0]=parts1
strCmdVars[1]=parts2
为了简化起见,我的示例是外推。当我遍历文件时,strCmdVars 可以保存以下任何值:
ipv6,FWG31
ipv4,FWG32
ipv4,FWG33
ipv6,FWG34
ipv4,FWG31
等等
我使用 dbp 调试验证了 strCmdVars 的值确实更改为正确的值,并且 strCommand 的值没有更改并保持其初始值。
【问题讨论】:
-
很奇怪。您能否通过具体示例(
strCmdVars和strCommand的值)编辑您的问题,以便我们可以运行它并在我们这边进行测试? -
编辑了问题并提供了更多详细信息,并附有示例。
标签: string python-3.x list windows-7 string-formatting