gpt4 book ai didi

python - 使用 Python 从 txt 文件中仅提取所需的列?

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:51 25 4
gpt4 key购买 nike

我编写了一个脚本,可将 Cisco 交换机数据输出到 .txt 文件。我想使用 Python 解析这些文件以仅从中提取我需要的信息。以下是文本文件中的数据示例:

VLAN         Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1 default active Gi0/3, Gi1/0, Gi1/1, Gi1/2, Gi1/3, Gi2/1, Gi2/2, Gi2/3

95 MGMT-VLAN95 active Gi0/2

1002 fddi-default act/unsup

1003 token-ring-default act/unsup

1004 fddinet-default act/unsup

1005 trnet-default act/unsup p

1005 trnet-default act/unsup

由于我对 Python 的了解有限,我尝试通过执行以下操作来实现这一点,但我没有设法实现我想要的:

with open('newfile', 'rw') as newfile:
list = newfile.readlines()
for row in list:
x = (row.strip().split())
print(x)
  • Print(x) 返回以下输出,但是当我尝试使用索引并调用 print(x[1]) 时,我收到了此行的回溯错误消息。
['VLAN', 'Name', 'Status', 'Ports']
['----', '--------------------------------', '---------', '-------------------------------']
['1', 'default', 'active', 'Gi0/3,', 'Gi1/0,', 'Gi1/1,', 'Gi1/2,', 'Gi1/3,', 'Gi2/0,', 'Gi2/1,', 'Gi2/2,', 'Gi2/3,', 'Gi3/0,', 'Gi3/1,', 'Gi3/2,', 'Gi3/3']
['95', 'MGMT-VLAN95', 'active', 'Gi0/2']
['1002', 'fddi-default', 'act/unsup']
['1003', 'token-ring-default', 'act/unsup']
['1004', 'fddinet-default', 'act/unsup']
['1005', 'trnet-default', 'act/unsup', 'p']
['1005', 'trnet-default', 'act/unsup']

下面是我希望的输出:

VLAN Name 
---- --------------------------------
1 default
95 VLAN-MGMT95
200 VLAN200
1002 fddi-default
1003 token-ring-default
1004 fddinet-default
1005 trnet-default

最佳答案

不确定您的回溯是什么,但我建议使用以下内容:

with open('newfile', 'rw') as newfile:
lines = newfile.readlines()
for row in lines:
x = row.strip().split()
if len(x) >= 2:
print(x[0].ljust(4) + ' ' + x[1])

这将避免格式错误的行可能导致 IndexError 弹出异常的问题。此外,ljust(4) 通过使用四个空格左对齐 VLAN 列中的字符串,为输出提供了更好的格式。

关于python - 使用 Python 从 txt 文件中仅提取所需的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54506936/

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