2016-05-05 6 views
0

Ich lernte und code unten, die die Hostnamen und seine IP-Adresse durch das Lesen des Host-Namen aus der "mylabList.txt" -Datei gibt, Nun schaue ich den Weg, um die Ausgabe in einem zu drucken ziemlich Visuell lesbarer aus wie Spaltenkopf an der Spitze von jedem und dann der Name (Darunter) ..Print Header Informationen für die menschliche Lesbarkeit in Python

gibt es Weise Breite zwischen den Säulen zu setzen, während das Drucken ...

#!/usr/bin/python 

import sys 
import socket 
with open("mylabList.txt", 'r') as f: 

    for host in f: 
     print("{0[0]}\t{0[2][0]}".format(socket.gethostbyname_ex(host.rstrip()))) 

Stromausgang ist wie :

mylab1.example.com 172.10.1.1 
mylab2.example.com 172.10.1.2 
mylab3.example.com 172.10.1.3 
mylab4.example.com 122.10.1.4 

Erwartete Ausgabe ist:

Server Name  IP ADDRESS 
=================================== 
mylab1.example.com  172.10.1.1 
mylab2.example.com  172.10.1.2 
mylab3.example.com  172.10.1.3 
mylab4.example.com  122.10.1.4 

Nur eine Notiz .. in meiner Ausgabe bis zu 30 Char srever Namens lenghth lang ist.

+0

Haben Sie [tabulate] (https://pypi.python.org/pypi/tabulate) angeschaut? Siehe [dieser Beitrag] (https://stackoverflow.com/questions/5909873/python-pretty-printing-ascii-tables) – CoryKramer

+0

http://stackoverflow.com/questions/9535954/python-printing-lists-as-tabolar -data –

+0

@CoryKramer ... Ich habe nicht Modul in meinem System tabellarisch, obwohl ich ein Neuling zu Python nur versuchen zu verstehen, wie es angepasst werden .. – rocky1981

Antwort

0

Sie könnten ljust verwenden und rjust

http://www.tutorialspoint.com/python/string_ljust.htm http://www.tutorialspoint.com/python/string_rjust.htm

print("A String".ljust(30, " ") + "Another String") 

Ergebnisse in

A String      Another String 

Dies ist eine Möglichkeit, den Trick zu tun:

#!/usr/bin/python 

import sys 
import socket 
print("Server Name".ljust(30, " ") + "IP ADRESS") 
print("="*39) 
with open("mylabList.txt", 'r') as f: 
    for host in f: 
     print("{0[0]}\t{0[2][0]}".format(socket.gethostbyname_ex(host.rstrip()))) 
+0

Es ist ein wenig in der Nähe des Ziels, aber es tut nur die Druck-Header und rechtfertigen den Abstand zwischen den beiden Header-Strings nur nicht die Ausgabespalten. 'Servername IP-ADRESSE' ' ======================================= ' Der Abstand zwischen dem ursprünglichen Servernamen und der IP-Adresse bleibt also gleich. – rocky1981