【问题标题】:Issue with format and lists格式和列表问题
【发布时间】: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


【解决方案1】:

我突然明白了我做错了什么以及为什么我的修复有效,有时你只需要睡在上面就能弄清楚:-P 好的,跟着这里。
strCommand = "show run {0} access-list {1}"的初始值
然后我使用格式函数将 {0} 和 {1} 替换为实际值,例如“IPv6”和“FWG32”。
现在strCommand = "show run IPV6 access-list FWG32"
看到问题???没有 {0} 和 {1} 了!!! :-D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多