So schreibe ich dieses Python-Programm, das die Umlaufzeit aus einer Textdatei, die ich zahlreiche Pings enthält, was in der Textdatei unten vorher extrahieren müssen:Parsing-Float-Zahl von ping-Ausgabe in Textdatei
64 bytes from a104-100-153-112.deploy.static.akamaitechnologies.com (104.100.153.112): icmp_seq=1 ttl=60 time=12.6ms
64 bytes from a104-100-153-112.deploy.static.akamaitechnologies.com (104.100.153.112): icmp_seq=2 ttl=60 time=1864ms
64 bytes from a104-100-153-112.deploy.static.akamaitechnologies.com (104.100.153.112): icmp_seq=3 ttl=60 time=107.8ms
Was ich aus der Textdatei extrahieren möchte, sind die 12.6, 1864 und die 107.8. Ich benutzte regex, dies zu tun und haben die folgenden:
import re
ping = open("pingoutput.txt")
rawping = ping.read()
roundtriptimes = re.findall(r'times=(\d+.\d+)', rawping)
roundtriptimes.sort()
print (roundtriptimes)
Das Problem, das ich habe ist, dass ich die Zahlen glauben, so in die roundtriptimes Liste als Strings gelesen werden, wenn ich gehe, sie sortieren sie nicht ordnen wie ich es gerne hätte.
Irgendeine Idee, wie man meinen regex findall Befehl ändert, um sicherzustellen, dass sie sie als Zahlen erkennt, würde ungeheuer helfen! Vielen Dank!
Cross-Gepostet: http://unix.stackexchange.com/questions/314093/parsing-text-file-in-python/314095#314095http://unix.stackexchange.com/questions/314093/ parsing-text-file-in-python/314095 # 314095 Ich antworte dir schon, auch mit ** voll funktionierendem ** Python-Code ... –
@GillesQuenot Ich habe das erst nach dem Posten einer Antwort gesehen. Das ist sehr bedauerlich. Es gibt tatsächlich eine voll funktionsfähige Python-Lösung in Ihrer Antwort (und eigentlich eine Regex, die besser ist als meine). – idjaw