首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从文件中获取具有最高ibps/obps的计算机名

从文件中获取具有最高ibps/obps的计算机名
EN

Stack Overflow用户
提问于 2022-01-14 20:44:55
回答 1查看 31关注 0票数 -1

给定一个包含交换机名称的文件,端口、传入的BPS、传出的BPS,需要找出最上面的对话开关。

代码语言:javascript
复制
cat machine.csv
代码语言:javascript
复制
SWITCH, PORTS, IBPS,OBPS
ARIS, ge-0/1, 5800000000, 5800000000
CISCO, ge-0/2, 1000000000, 5700027720
JUNIPER, ge-0/3, 2000000000,3000000000
HPE, ge-0/4,3000000000,4000000000

在这种情况下,应该返回机器名ARIS。

如果您能帮忙的话,我曾经尝试过从文件中解析并创建一个字典,但是在这一点上我不知道如何继续下去。

代码语言:javascript
复制
def readFile(path, machine_dict):
    with open('machine.csv', "r") as dataset:
            _, *props = dataset.readline().split(',')
            for line in dataset:
                    name, *vals = line.split(',')
                    machine_props = {}
                    for i in range(len(props)):
                            machine_props[props[i].strip('\n')] = vals[i].strip('\n')
                    machine_dict[name] = machine_props
EN

Stack Overflow用户

发布于 2022-01-14 21:53:50

首先,使用csv库读取文件:

代码语言:javascript
复制
import csv
with open("machine.csv", "r") as f:
    reader = csv.reader(f)
    # Skip header
    next(reader)
    # Convert to a list of tuples
    data = list(reader)

现在,data

代码语言:javascript
复制
[['ARIS', ' ge-0/1', ' 5800000000', ' 5800000000'],
 ['CISCO', ' ge-0/2', ' 1000000000', ' 5700027720'],
 ['JUNIPER', ' ge-0/3', ' 2000000000', '3000000000'],
 ['HPE', ' ge-0/4', '3000000000', '4000000000']]

然后,使用索引23的OBPS或IBPS的较大值对数据进行排序。

代码语言:javascript
复制
highest = sorted(data, key=lambda x: max(int(x[2]), int(x[3])))[-1]
print(highest[0])

输出:

代码语言:javascript
复制
ARIS
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70716338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档