根据关键字匹配从文本中获取数据

时间:2017-03-16 22:59:30

标签: python

我有一个包含以下内容的文本文件:

name1 -1 -1 -1 1 -1 1 
...
...
...

nameN -1 -1 1 1 -1 1 

另外,我有一个函数可以随机返回文件中的一个名字。有没有办法将文本文档转换为可管理的python数据类型?基本上,如果函数返回name1,我想获取与" name1"相关联的整数向量。

2 个答案:

答案 0 :(得分:2)

在Python中非常简单:

  • 将数据拆分为行。
  • 对于每一行,拆分为单元格。
  • 第一个单元格是你的dict键,值是其他单元格。
  • 将它们转换为int。

完成!

Contains

如果您想阅读文件:

data = """name1 -1 -1 -1 1 -1 1 
nameN -1 -1 1 1 -1 1"""

my_dict = {}

for line in data.split("\n"):
    cells = line.split()
    my_dict[cells[0]] = [int(x) for x in cells[1:]]

print my_dict
# {'nameN': [-1, -1, 1, 1, -1, 1], 'name1': [-1, -1, -1, 1, -1, 1]}
print my_dict['name1']
# [-1, -1, -1, 1, -1, 1]

答案 1 :(得分:0)

粗略轮廓:

  • 迭代文件中的行
  • 拆分每一行(默认字符为空格)
  • 检查名称是否匹配
  • 如果是这样,请通过将每个剩余元素转换为所需的整数类型来构建输出。

有了这个,你可能最终得到这样的东西:

def getData(name, file)
    for line in file:
        line = line.split()

        if line[0] == name:         
            data = [int(entry) for entry in line[1:]]
            return data