将文本解析为列

Parse text into columns

我从一系列路由器得到以下输出:

hostname CPE-ABCDEFGHI-55553-03
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0              unassigned      YES unset  up                    up      
FastEthernet1              unassigned      YES unset  up                    down    
FastEthernet2              unassigned      YES unset  up                    down    
FastEthernet3              unassigned      YES unset  up                    up      
FastEthernet4              unassigned      YES NVRAM  up                    up      
FastEthernet4.100          93.62.88.112    YES DHCP   up                    up      
FastEthernet4.106          182.21.200.233  YES DHCP   up                    up      
Vlan1                      12.230.1.34     YES NVRAM  up                    up      
###############################################
hostname CPE-XXXXXXXXX-33333-01
Interface                  IP-Address      OK? Method Status                Protocol
Async1                     unassigned      YES unset  down                  down    
FastEthernet0              unassigned      YES unset  up                    up      
FastEthernet1              unassigned      YES unset  down                  down    
FastEthernet2              unassigned      YES unset  down                  down    
FastEthernet3              unassigned      YES unset  down                  down    
FastEthernet4              unassigned      YES unset  down                  down    
FastEthernet5              unassigned      YES unset  down                  down    
FastEthernet6              unassigned      YES unset  down                  down    
FastEthernet7              unassigned      YES unset  down                  down    
FastEthernet8              unassigned      YES NVRAM  administratively down down    
GigabitEthernet0           unassigned      YES DHCP   up                    up      
GigabitEthernet0.100       1.1.1.1    YES DHCP   up                    up      
GigabitEthernet0.106       152.21.133.171  YES DHCP   up                    up      
NVI0                       unassigned      YES unset  administratively down down    
Vlan1                      10.241.0.162    YES NVRAM  up                    up      
Vlan10                     10.240.0.194    YES NVRAM  up                    up      
###############################################
hostname CPE-YYYYYYYYY-28886-03
Interface                  IP-Address      OK? Method Status                Protocol
Cellular0                  unassigned      YES NVRAM  up                    up      
Dialer1                    192.168.255.3   YES IPCP   up                    up      
FastEthernet0              unassigned      YES unset  up                    up      
FastEthernet1              unassigned      YES unset  up                    down    
FastEthernet2              unassigned      YES unset  up                    down    
FastEthernet3              unassigned      YES unset  up                    down    
FastEthernet4              unassigned      YES NVRAM  administratively down down    
Loopback0                  173.17.18.193   YES NVRAM  up                    up      
NVI0                       18.10.10.1      YES unset  up                    up      
Vlan1                      10.241.0.163    YES NVRAM  up                    up      
Vlan10                     10.240.0.195    YES NVRAM  up                    up      
###############################################
hostname CPE-AAAAAAAAA-22222-03
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0              unassigned      YES unset  up                    up      
FastEthernet1              unassigned      YES unset  up                    down    
FastEthernet2              unassigned      YES unset  down                  down    
FastEthernet3              unassigned      YES unset  up                    down    
FastEthernet4              unassigned      YES NVRAM  up                    up      
FastEthernet4.100          46.189.234.214  YES DHCP   up                    up      
FastEthernet4.106          172.21.128.240  YES DHCP   up                    up      
Vlan1                      10.241.7.253    YES NVRAM  up                    up      
Vlan10                     10.270.1.35     YES NVRAM  up                    up      
###############################################

我需要将其转换为一个 Excel 文件,每个界面有一列。为此,我需要制作一个 python 2.7.5(ssh 服务器的限制)脚本来将文本解析为 Excel.

例如(假设这些是细胞)

Hostname Interface IP Address OK? Method Status Protocol
CPE-ABCDEFGHI-55553-03 FastEthernet0 unassigned (...) ... ... ...
CPE-ABCDEFGHI-55553-03 FastEthernet1 unassigned (...) ... ... ...

你能帮我做这个吗?

也许是这样的?

output = []
with open('Output.txt','r') as fil:
    for line in fil:
        output.append(line.strip())

mydata = []
host_curr = ''

for element in output:
    if element.startswith('####') or element.startswith('Interface'):
        continue
    if element.startswith('hostname'):
        host_curr = element.split()[1]
        continue
    myline = host_curr + '\t' + element
    mydata.append(myline)


with open('Output.csv','w') as out:
    for elem in mydata:
        out.write('{}\n'.format(elem))

如果输出是您的输出(这里是文本行列表)。 csv 应如下所示:

CPE-ABCDEFGHI-55553-03  FastEthernet0              unassigned      YES unset  up                    up
CPE-ABCDEFGHI-55553-03  FastEthernet1              unassigned      YES unset  up                    down
CPE-ABCDEFGHI-55553-03  FastEthernet2              unassigned      YES unset  up                    down
CPE-ABCDEFGHI-55553-03  FastEthernet3              unassigned      YES unset  up                    up
CPE-ABCDEFGHI-55553-03  FastEthernet4              unassigned      YES NVRAM  up                    up
CPE-ABCDEFGHI-55553-03  FastEthernet4.100          93.62.88.112    YES DHCP   up                    up
CPE-ABCDEFGHI-55553-03  FastEthernet4.106          182.21.200.233  YES DHCP   up                    up
CPE-ABCDEFGHI-55553-03  Vlan1                      12.230.1.34     YES NVRAM  up                    up
CPE-XXXXXXXXX-33333-01  Async1                     unassigned      YES unset  down                  down
CPE-XXXXXXXXX-33333-01  FastEthernet0              unassigned      YES unset  up                    up
CPE-XXXXXXXXX-33333-01  FastEthernet1              unassigned      YES unset  down                  down
CPE-XXXXXXXXX-33333-01  FastEthernet2              unassigned      YES unset  down                  down
CPE-XXXXXXXXX-33333-01  FastEthernet3              unassigned      YES unset  down                  down
CPE-XXXXXXXXX-33333-01  FastEthernet4              unassigned      YES unset  down                  down
CPE-XXXXXXXXX-33333-01  FastEthernet5              unassigned      YES unset  down                  down
CPE-XXXXXXXXX-33333-01  FastEthernet6              unassigned      YES unset  down                  down
CPE-XXXXXXXXX-33333-01  FastEthernet7              unassigned      YES unset  down                  down
CPE-XXXXXXXXX-33333-01  FastEthernet8              unassigned      YES NVRAM  administratively down down
CPE-XXXXXXXXX-33333-01  GigabitEthernet0           unassigned      YES DHCP   up                    up
CPE-XXXXXXXXX-33333-01  GigabitEthernet0.100       1.1.1.1    YES DHCP   up                    up
CPE-XXXXXXXXX-33333-01  GigabitEthernet0.106       152.21.133.171  YES DHCP   up                    up
CPE-XXXXXXXXX-33333-01  NVI0                       unassigned      YES unset  administratively down down
CPE-XXXXXXXXX-33333-01  Vlan1                      10.241.0.162    YES NVRAM  up                    up
CPE-XXXXXXXXX-33333-01  Vlan10                     10.240.0.194    YES NVRAM  up                    up