解析各个部分的文件

时间:2014-11-11 22:15:06

标签: list file parsing python-2.7

我正在尝试解析包含以下内容的文件

# This is 1st line
# This is 2nd line
ATOM This is 3rd line 

ATOM This is 4th line
# This is 5th line
# This is 6th line

我希望使用Python 2.7来解析文件,并将以ATOM开头的行追加到列表head_list,行以ATOM开头到{{1} }和包含atom_listATOM的行之后的行。

我想在Python中使用tail_list来匹配以startswith()开头的行。下面是我的代码,我传递的是计数器变量,它具有以ATOM开头的文件中最后一行的索引。但我的输出似乎不正确

ATOM

1 个答案:

答案 0 :(得分:0)

这一行:

enumerate(all_file_contents, counter)

没有做你认为的事情;它迭代列表中的所有内容,但从counter而不是0开始编号。最小的修复是:

for i, line in enumerate(all_file_contents):
     if i >= counter:
         tail_list.append(line)

但是,更好的方法是不要遍历整个文件三次。请特别注意tail_list = all_file_contents[counter:]获得您想要的结果。另外,摆脱global并明确传递counter

您还应该阅读the style guide