如何从文件中读取多行数据到python?

时间:2017-02-08 21:36:56

标签: python

我有一个关于化合物的文件,在它有一个具有不同名称的新部分之前,它给出了具有相应数据的部分的名称,有时还有几行数据。我正在尝试阅读'NAME'条目(减去'NAME'部分)并将每个名称(如果它有多个)读入一个列表,然后每当它到达'FORMULA'部分并让它移动到下一个'NAME'部分,但我不知道如何。我是新手程序员。这是一个例子:Compound List Screenshot enter image description here

到目前为止,这是我的代码:

li=[] #list of all names
for line in inputFile:
    if line[:5]=='ENTRY':
        items = line.split()
        cmNm = items[1] #compound Number
    else line[:4]=='NAME':
        items = line.split()
        cmName = items[]
        if line[:7]=='FORMULA':
            break

1 个答案:

答案 0 :(得分:0)

with open('/path/to/file.txt', 'r') as inputFile:
    for line in inputFile:
        try:
            # Skip lines until we find an entry
            while len(line) < 5 or line[:5] != 'ENTRY':
                line = inputFile.next()
            # Setup for logging that entry
            cmNm = line.split()
            cmName = []
            # Append all name lines
            while len(line) < 7 or line[:7] != 'FORMULA':
                cmName.append(line)
                line = inputFile.next()
            # Process cmNm/cmName for current compound before moving on
            print (str(cmNm) + " " + str(cmName))
        except StopIteration:
            pass # Reached end of file

cmNm包含ENTRY行的拆分列表

cmName包含一起组成名称的行列表。

您必须添加要存储的任何处理/格式化cmNm&amp; cmName你想要的。我只是按照它去打印它们。

只要最后一个有效条目有pass,您就可以安全地FORMULA使用StopIteration。