微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Speedtest 连续循环失败

如何解决Speedtest 连续循环失败

我正在尝试构建一个循环,每隔几分钟在 .csv 中保存下载和上传速度。

我当前的代码有两个问题:

1.问题:循环以避免 ConfigRetrievalError 假设由于我们的 wifi 连接不稳定,我得到 ConfigRetrievalError: <urlopen error [Errno 11001] getaddrinfo Failed> 不时。 我试图通过构建一个循环(基于此代码 1)来解决它,该循环会在错误出现时立即尝试从头开始运行代码。 不幸的是,该代码也会覆盖 .csv 中以前的条目,尽管理想情况下它应该开始在 csv 中的最后一个条目下方添加行。

2.问题:代码中断/except语句 我不知道如何正确中断我的代码,理想情况下我还想在 except 语句之后命名错误except ConfigRetrievalError: 不起作用。

def test():
    s = speedtest.Speedtest()
    s.get_servers()
    s.get_best_server()
    s.download()
    s.upload()
    res = s.results.dict()
    return res["download"],res["upload"],res["ping"]

def main():
    while True:
        with open('home_v05.csv','w') as f:
            try: 
                f.write('timestamp,download_in_mb,upload_in_mb,ping\n')
                for i in range(15000):
                    print('Making test #{}'.format(i+1))
                    d,u,p = test()
                    dt = datetime.Now(timezone('GMT')).isoformat()
                    f.write('{},{},{}\n'.format(dt,round(d/1000,1),round(u/1000,p))
                    time.sleep(20)
                break
            except:
                print('Raised error')
            
if __name__ == '__main__':
    main()

示例输出

Making test #42
Making test #43
Raised error
Making test #1
Raised error
Making test #1
Making test #2
Making test #3

非常感谢任何帮助。提前致谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。