gpt4 book ai didi

python - 如何在不熟悉从中获取的 .py 文件的情况下解析我使用的方法的结果?

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:35 24 4
gpt4 key购买 nike

首先,我想说的是,我正在 Python 中迈出真正的第一步。我正在尝试在我的自动化测试中使用 python3-ping。我的问题是我没有任何 python 经验,我不知道如何操作我不熟悉的 .py 文件。我尝试使用以下内容:

result = ping.verbose_ping('10.0.1.135', count=3)

但是,然后我打印结果并返回“无”。我希望能够解析 ping.py 脚本的输出:

PYTHON PING 10.0.1.135 (10.0.1.135): 64 data bytes
64 bytes from 10.0.1.135: icmp_seq=0 ttl=64 time=0 ms
64 bytes from 10.0.1.135: icmp_seq=1 ttl=64 time=0 ms
64 bytes from 10.0.1.135: icmp_seq=2 ttl=64 time=0 ms

----10.0.1.135 PYTHON PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip (ms) min/avg/max = 0/0.7/0

我的一个计划是让实例“捕获”最后一行并告诉接收到的数据包数量或数据包丢失百分比

>>> dir(result)
['__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__form
at__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__',
'__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__se
tattr__', '__sizeof__', '__str__', '__subclasshook__']

最佳答案

首先,我想说你选择的库自 2014 年以来没有更新,查看源代码它写得不好(对我来说看起来像 Java)并且没有你可以使用的真正的 API,因为所有方法都只是打印输出而不返回它。所以我真正的建议是 - 不要使用它

考虑到这一点,如果您必须使用它,真正的问题是如何从第 3 方标准输出获得输出?如果您使用的是 python3.4 及更高版本,则可以使用内置的 redirect_stdout。这是您的代码示例:

f = StringIO()
with redirect_stdout(f):
ping.verbose_ping('10.0.1.135', count=3)

ping_string = f.getvalue()
ping_lines = ping_string.splitlines()

现在由您决定如何处理 ping_lines 列表中每一行的解析。

对于python 2和更早的python 3,可以看python的源码了解它是如何实现的herethis snippet .

关于python - 如何在不熟悉从中获取的 .py 文件的情况下解析我使用的方法的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45006394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com