Python从txt文件提取数据并忽略标题

时间:2018-07-05 14:39:25

标签: python extract

我有一个txt文件,其中显示了节点以及节点之间的边缘。节点部分包含一些其他信息。该文件如下所示:

@nodes
label    characteristic A    characteristic B
1        vfn                 5
2        ksdv                625
3        asn                 0

@edges
1 3
2 3

如果我有一个节点文件和一个没有标题的边线文件,那么我可以提取信息,但是如果文件看起来像例子一样,该如何提取信息呢?由于skript必须适用于这种格式的所有节点边缘文件,因此我不能只剪掉某些行,因此我需要以某种方式发现@符号并沿该行剪裁。除此之外,我还需要在边缘部分没有标题的情况下剪切出具有该特征的节点标题。

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

这是您要寻找的吗?

file = open(“testfile.txt”, “r”) 
for line in file:
    if line[:1] != "@":
    print line or whatever

答案 1 :(得分:0)

with open("nodes.txt", "r") as f:
    for line in f.readlines():
        if '@' in line:
            # skip the header if you want here
            continue
        data = line.split()

答案 2 :(得分:0)

这是您要寻找的东西吗?

结果有两个列表:节点,边

from __future__ import print_function

with open("nodes-edges.txt") as g:
    data = g.read().replace('@nodes\n', '').split('\n')[1:]

    is_node = True
    nodes = []
    edges = []

    for item in data:
        if item == '@edges':
            item = ''
            is_node = False

        if item:
            list_elements = [element for element in item.split(' ') if element != '' ]

            if is_node:
                nodes.append(list_elements)
            else:
                edges.append(list_elements)

    print('nodes: ', nodes)
    print('edges: ', edges)