Je suis un noob total à python. Mais ont beaucoup d'expérience CLI sur Cisco et autres. J'ai décidé de faire de Python mon outil de script 'go to'. Et bien, j'ai lamentablement échoué mon premier essai même en volant la plupart du code ... r n affiche sous forme de chaîne dans mon fichier texte
Je fais un ping d'une liste d'hôtes. Le but est de 1. Valider est vivant et 2. obtenir l'IP
Le script que j'ai obtenu en ligne a fonctionné après un peu de peaufinage pour la version 3.4.
L'affichage montre parfait comme je veux. Le fichier qu'il écrit est juste une longue ligne qui semble avoir le \ r \ n juste écrit dans le cadre du texte. C'est le code et un échantillon de l'écran et le fichier écrit.
import sys
import os
import platform
import subprocess
import threading
import pexpect
hosts_file = open("hosts.txt","r")
lines = hosts_file.readlines()
for line in lines:
line = line.strip()
ping = subprocess.Popen(["ping", "-n", "3",line],stdout = subprocess.PIPE,stderr = subprocess.PIPE)
out, error = ping.communicate()
out = out.strip()
error = error.strip()
output = open("PingResults.txt",'a')
output.write(str(out))
output.write(str(error))
print(out.decode('utf-8'))
print(error.decode('utf-8'))
hosts_file.close()
écran est parfait
Pinging HOST7.foo [10.180.43.209] with 32 bytes of data:
Reply from 10.180.43.209: bytes=32 time=81ms TTL=60
Reply from 10.180.43.209: bytes=32 time=56ms TTL=60
Reply from 10.180.43.209: bytes=32 time=56ms TTL=60
Notepad ++ lit comme seule ligne visible \ r \ n (comme d'autres éditeurs
b'Pinging host7.foo [10.180.43.11] with 32 bytes of data:\r\nReply from 10.18.43.11: bytes=32 time=555ms TTL=60\r\nReply from 10.18.43.11: bytes=32 time=140ms TTL=60\r\nReply from 10.180.43.11: bytes=32 time=139ms TTL=60\r\n\r\nPing statistics for 10.180.43.11:\r\n Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),\r\nApproximate round trip times in milli-seconds:\r\n Minimum = 139ms, Maximum = 555ms, Average = 278ms'b''b'Pinging host9.foo [10.180.43.25] with 32 bytes of data:\r\nReply from
Aidez-moi Obi-Wan Kenobie ... vous êtes mon seul espoir ...
D'où vient l'entrée dans Notepad ++? ' – tripleee
J'ouvre le fichier pingresults.txt avec notepad ++ – Seth
Vous récupérez des octets (c'est ce que le 'b' ... '') signifie que vous avez DECODE dit octets sur l'entrée à votre programme et les ENCODE sur la sortie – bernie