在測驗完成后,我有一個關于 IP 地址不同資訊的文本檔案。我想把這些資訊列印出來,怎么做?
文本檔案名為“IPAddressesTEST.log”
部分文字如下
連接的 IPv6:
(這里是 ipv6 地址)
我試過了:
with open ('C:/test/IPAddressesTEST.log', "rt") as Ip_Log:
for l in Ip_Log:
Ip_Log_Iter = iter(l)
for lines in Ip_Log_Iter:
if lines == "Connected IPv6's:":
x = next(Ip_Log_Iter)
break
print(x)
uj5u.com熱心網友回復:
如果我們假設“IPAddressesTEST.log”看起來像這樣:
junk
stuff
Connected IPv6's:
2345:0425:2CA1:0000:0000:0567:5673:23b5
foo
bar
Connected IPv6's:
2392:0411:2CB2:0000:0000:0567:5226:24ba
more stuff
more junk
然后下面將列印出緊跟在包含字串“Connected IPv6's:”的行之后的行。
with open('IPAddressesTEST.log', 'r', encoding='utf-8') as f:
lines = f.readlines()
for counter, line in enumerate(lines):
if "Connected IPv6's:" in line:
print(lines[counter 1].strip())
輸出:
2345:0425:2CA1:0000:0000:0567:5673:23b5
2392:0411:2CB2:0000:0000:0567:5226:24ba
編輯
根據要求,如果您只想要 then 的第一個實體,Connected IPv6's則無需繼續回圈遍歷檔案,只要break找到相關行即可:
with open('IPAddressesTEST.log', 'r', encoding='utf-8') as f:
lines = f.readlines()
for counter, line in enumerate(lines):
if "Connected IPv6's:" in line:
print(lines[counter 1].strip())
break
輸出:
2345:0425:2CA1:0000:0000:0567:5673:23b5
請注意,它只是最接近檔案頂部的 IP 地址
uj5u.com熱心網友回復:
import re
pattern = "(?<=Connected IPv6's:\n)\S*"
text = "Connected IPv6's:\n2345:0425:2CA1:0000:0000:0567:5673:23b5"
re.findall(pattern,text)
輸出:
['2345:0425:2CA1:0000:0000:0567:5673:23b5']
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/514439.html
標籤:Python文件文本
上一篇:我上傳的圖片沒有保存在存盤檔案中
