Python在文本文件中跳过一行或多行

时间:2015-04-02 08:56:04

标签: python python-2.7

我正在尝试在Python2.7中做一些事情,我真的很感激任何帮助!!我有一个txt文件,我想阅读每一行并做一些事情(我还没有决定)然而)。无论如何,有一些我不想要的线路,我想跳过它们,我不知道该怎么做。我读到了next()函数,但我并不总是知道需要跳过多少行,我不知道如何使用next()eg.file.next()或next(iterator)。 为了使自己清楚,这是一个例子:

 mytxt:
    line1
    line2
    line3
    line_to_be_skipped_1
    line_to_be_skipped_2
    line6
    line7
    line8
    line_to_be_skipped_3
    line9

etc

我试图做这样的事情:

if line=certain_condition:
    skip_this_line_and_the_next_one(s)_if_the_same_condition_applies_and_continue_to_the_next_line

提前谢谢!!!

5 个答案:

答案 0 :(得分:2)

with open('/path/to/file') as infile:
    for line in infile:
        if some_condition(line):
            continue
        do_stuff(line)

continue只是告诉python忽略for循环体的其余部分并返回顶部。这样,任何通过some_condition的行都将被忽略。

在您的情况下,您似乎想要忽略具有line_to_be_skipped的行。因此,some_condition可能如下所示:

def some_condition(line):
    return "line_to_be_skipped" in line

答案 1 :(得分:1)

您可以尝试使用此

with open('test.txt') as f:
    for i in f:
        if i != "AnyParticularStatementToBeSkipped":
            # do any operations here

答案 2 :(得分:1)

跳过特定行:

x = []
f = open("filename")
for line in f:
    x.append(line) if line not in list_of_lines_to_skip

list_of_lines_to_skip是您要跳过的行列表。您可以使用正则表达式来避免要跳过的特定图案线条(如果您更新问题,可以更新)。

答案 3 :(得分:1)

我通常这样做:

with open("mytxt", 'r') as f:
    for line in f:
        if "some pattern" in line:
            continue
        '''
        process the line you will not skip
        ''' 

答案 4 :(得分:1)

我敢打赌我的钱是重复的,但我找不到任何明显的2分钟搜索。

无论如何,最简单的方法是使用列表理解。

with open("test.txt") as f:
    res = [x for x in f if x.rstrip('\n') not in list_of_exclude_items]