私は条件付きの追加を実行するためにテキストファイルに苦労している/ Pythonを使用して特定のテキストを拡張しています。 (条件付きでの追加Python
コード(添付)に関しては、「記述」を含む文の下に文「mtu 1546」を追加する必要があります。それは存在しません。また、私は、インターフェイスステートメント(および/または上記のmtuステートメント、利用可能な場合)の下に "記述TEST"ステートメントを追加できるようにしたいと思います。私はPython 2.7を使用しています。
ここでだ私のコードです:それは正しく興味深いラインを印刷することができますよう
import re
f = open('/TESTFOLDER/TEST.txt','r')
interfaces=re.findall(r'(^interface Vlan[\d+].*\n.+?\n!)',f.read(),re.DOTALL|re.MULTILINE)
for i in interfaces:
interfaceslist = i.split("!")
for i in interfaceslist:
if "mtu" not in i:
print i
f.close()
print文は、条件で正常に動作しますしかし、私の必要条件は、必要な文をリストに追加(追加/拡張)して、構文解析や処理にそれをさらに使用できるようにすることです。 append/extend関数を試してみると、インタプリタは文字列オブジェクトであると解釈します。サンプルソースファイル(テキスト)は次のとおりです。私が解析するテキストファイルはサイズが大きいので、興味深いテキストを追加するだけです。
!
interface Vlan2268
description SNMA_Lovetch_mgmt
mtu 1546
no ip address
xconnect 22.93.94.56 2268 encapsulation mpls
!
interface Vlan2269
description SNMA_Targoviste_mgmt
mtu 1546
no ip address
xconnect 22.93.94.90 2269 encapsulation mpls
!
interface Vlan2272
mtu 1546
no ip address
xconnect 22.93.94.72 2272 encapsulation mpls
!
interface Vlan2282
description SNMA_Ruse_mgmt
no ip address
xconnect 22.93.94.38 2282 encapsulation mpls
!
interface Vlan2284
mtu 1546
no ip address
xconnect vfi SNMA_Razgrad_mgmt
!
interface Vlan2286
description mgmt_SNMA_Rs
no ip address
xconnect 22.93.94.86 2286 encapsulation mpls
!
interface Vlan2292
description SNMA_Vraca_mgmt
mtu 1546
no ip address
xconnect 22.93.94.60 2292 encapsulation mpls
!
をあなたは私がループの両方で変数を使用していたことに気づいたことがありますか? :) –
実際、Pythonはそれが別の変数だと認識していますが、人間の読者にとっては混乱します。 –
マイケルに感謝します。それは私が心に持っていたものです。 – user531942