首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于关键词匹配的文本数据获取

基于关键词匹配的文本数据获取
EN

Stack Overflow用户
提问于 2017-03-16 22:59:29
回答 2查看 33关注 0票数 1

我有一个文本文件,其内容如下:

代码语言:javascript
复制
name1 -1 -1 -1 1 -1 1 
...
...
...

nameN -1 -1 1 1 -1 1 

另外,我有一个函数,它随机返回文件中的一个名称。是否有方法将文本文档转换为可管理的python数据类型?基本上,如果函数返回name1,我希望获取与"name1“相关联的整数向量。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-16 23:05:40

在Python中,它非常简单:

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

完成了!

代码语言:javascript
复制
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]

如果您想读取一个文件:

代码语言:javascript
复制
my_dict = {}

with open('filename.txt') as data:
    for line in data:
        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]
票数 2
EN

Stack Overflow用户

发布于 2017-03-16 23:13:55

大致轮廓:

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

这样的话,你可能最终会得到这样的结果:

代码语言:javascript
复制
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  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42846295

复制
相关文章

相似问题

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