2017-09-01 42 views
0

我有一個循環,我改變一個列表,然後使用format建立一個新的字符串。當使用這種線問題與格式和列表

strCommand = strCommand.format(*strCmdVars) 

我發現,當我從我的數據,strCommand迭代將保持其原始值的字符串不會更新。但是,當我將其更改爲此

strCmd = strCommand.format(*strCmdVars) 

事情開始按預期工作。 我絆倒了一些奇怪的東西,還是我第一次做錯了? 這是下的Python 3.4.3版本在Windows 7上 跑這裏有一些細節一起工作:

strCommand = "show run {0} access-list {1}" strCmdVars = ["ipv6","FWG31"]

在實際的腳本中,我使用追加這樣

strCmdVars.append(parts1) strCmdVars.append(parts2)

strCmdVars初始化

然後當我遍歷我正在閱讀的文件(這是part1和part2的值來自哪裏)的文件時,我在循環的末尾做了

strCmdVars[0]=parts1 strCmdVars[1]=parts2

爲了簡化,我的例子是外推。由於我通過文件strCmdVars循環可以持有任何這些值:
的IPv6,FWG31
的IPv4,FWG32
的IPv4,FWG33
的IPv6,FWG34
的IPv4,FWG31

我驗證了strCmdVars的值確實正在使用dbp調試更改爲正確的值,並且strCommand的值未發生更改並保持爲初始值。

+1

非常奇怪。你可以用一個具體的例子(strCmdVars和strCommand的值)來編輯你的問題,這樣我們就可以運行它並在我們這邊測試了嗎? –

+0

編輯了這個問題,並提供了更多的細節和例子。 – Siggi

回答

0

它剛剛在我身上發現我做錯了什麼,以及爲什麼我的修復工作,有時你只需要睡在它上面就可以知道它:-P按照這裏繼續。
初始值strCommand = "show run {0} access-list {1}"
然後我使用format函數來替換{0}和{1}的實際值,比如說「IPv6」和「FWG32」。
現在strCommand = "show run IPV6 access-list FWG32"
看到問題???不再有{0}和{1} !!! :-D