为了账号安全,请及时绑定邮箱和手机立即绑定

将循环输出的完整转储到 Python 中的文本文件

将循环输出的完整转储到 Python 中的文本文件

慕尼黑的夜晚无繁华 2023-06-20 16:13:08
我正在运行 for 循环以读取文件 (txt) 并将文件中的信息切片。切片后,我试图将整个结果转储到文本文件中,代码如下:import subprocessjabber = open('C:/Users/Ahmed Mustafa/Desktop/Network Latency Measuring Tool/output.txt','r')for line in jabber:    if 'statistics' in line.lower():        iploc = line.find("for ") +4        iplocend = line.find(":",iploc)        print(line[iploc:iplocend])    if 'packet' in line.lower():        sentloc = line.find("Sent")        sentlocend = line.find(",",sentloc)        print(line[sentloc:sentlocend])    if 'packet' in line.lower():        rxloc = line.find("Received")        rxlocend = line.find(",",rxloc)        print(line[rxloc:rxlocend])    if 'packet' in line.lower():        losloc = line.find("Lost")        loslocend = line.find(" (",losloc)        print(line[losloc:loslocend])    if 'packet' in line.lower():        lossloc = line.find("(")+1        losslocend = line.find(" loss",lossloc)        print(line[lossloc:losslocend] + " Loss")    if 'minimum' in line.lower():        maxloc = line.find("Maximum")        maxlocend = line.find(",",maxloc)        print(line[maxloc:maxlocend])    if 'minimum' in line.lower():        minloc = line.find("Minimum")        minlocend = line.find(",",minloc)        print(line[minloc:minlocend])        result = line[minloc:minlocend]    if 'minimum' in line.lower():        avgloc = line.find("Average")        avglocend = line.find(",",avgloc)        print(line[avgloc:avglocend])        result = line[avgloc:avglocend]        print('-'*60)jabber.close()with open("outputp.txt", "w") as outputp:    outputp.writelines(str(result))此代码输出如下:8.8.8.8Sent = 4Received = 4Lost = 00% LossMaximum = 279msMinimum = 158msAverage = 195ms------------------------------------------------------------127.0.0.1Sent = 4Received = 4Lost = 00% LossMaximum = 0msMinimum = 0msAverage = 0ms------------------------------------------------------------但是,当我检查名为“outputp.txt”的输出文件时,我发现只有最后一个结果如下所示:Average = 0ms
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

问题通过result += x在每个 if 嵌套中包含也通过添加一些格式来解决,例如'\n' Also,result = ''在 for 循环之前添加以清除变量并防止数据累积,这是最终代码:


import subprocess

jabber = open('C:/Users/Ahmed Mustafa/Desktop/Network Latency Measuring 

Tool/output.txt','r')

result = ""

for line in jabber:

    if 'statistics' in line.lower():

        iploc = line.find("for ") +4

        iplocend = line.find(":",iploc)

        print(line[iploc:iplocend])

        result += (line[iploc:iplocend] + '\n')

    if 'packet' in line.lower():

        sentloc = line.find("Sent")

        sentlocend = line.find(",",sentloc)

        print(line[sentloc:sentlocend])

        result += (line[sentloc:sentlocend] + '\n')

    if 'packet' in line.lower():

        rxloc = line.find("Received")

        rxlocend = line.find(",",rxloc)

        print(line[rxloc:rxlocend])

        result += (line[rxloc:rxlocend] + '\n')

    if 'packet' in line.lower():

        losloc = line.find("Lost")

        loslocend = line.find(" (",losloc)

        print(line[losloc:loslocend])

        result += (line[losloc:loslocend] + '\n')

    if 'packet' in line.lower():

        lossloc = line.find("(")+1

        losslocend = line.find(" loss",lossloc)

        print(line[lossloc:losslocend] + " Loss")

        result += (line[lossloc:losslocend] + " Loss"  + '\n')

    if 'minimum' in line.lower():

        maxloc = line.find("Maximum")

        maxlocend = line.find(",",maxloc)

        print(line[maxloc:maxlocend])

        result += (line[maxloc:maxlocend] + '\n')

    if 'minimum' in line.lower():

        minloc = line.find("Minimum")

        minlocend = line.find(",",minloc)

        print(line[minloc:minlocend])

        result += (line[minloc:minlocend] + '\n')

    if 'minimum' in line.lower():

        avgloc = line.find("Average")

        avglocend = line.find(",",avgloc)

        print(line[avgloc:avglocend])

        result += (line[avgloc:avglocend] + '\n')

        print('-'*60)

jabber.close()


with open("outputp.txt", "w") as outputp:

    outputp.writelines(str(result))


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信