跳过python中的行

时间:2017-01-18 20:28:36

标签: python python-3.x text-files

我在python中读取文件:

alist = [line.rstrip() for line in f]
  for line in alist:
    if line[10] == 4:
       hop over 4 lines

文本文件示例:

  • LINE1
  • LINE2
  • line3中
  • LINE4
  • line有4个blabla
  • 一行想跳过
  • 一行想跳过
  • 一行想跳过
  • 一行想跳过

当一行中的10个元素是x(某些数字1,2,3,4,...)时,我想跳过等量的行。我已经找了很长时间的答案,但我找不到任何东西,请帮忙!

3 个答案:

答案 0 :(得分:1)

为了实现这一点,您可以使用while迭代文件的索引

i = 0   # initialize counter
file_lines = f.readlines()  # It contains the list of all the lines

while i < len(file_lines):
    line = file_lines[i].strip()  # stripped content of `i`th line
    if line[10].isdigit():  # check if 10th character is digit
        match = line[10]
        # Do something

        i += int(match)    # increment the counter by 10
    else:
        i += 1

答案 1 :(得分:1)

尝试将alist转换为可迭代,然后您可以通过调用next

来放弃您不想要的值
alist = [line.rstrip() for line in f]
it = iter(alist)
for line in it:
    print(line)
    if line[10] == 4:
        for i in range(4):
            try: 
                _ = next(it)
            except StopIteration:
                break

答案 2 :(得分:-1)

你可以做到这一点的一种方法是使用while循环。这是一个例子:

i = 0
while i < 20:
  print(i)
  i += 4`

打印

0
4
8
12
16`

我不完全确定我理解 为什么你试图跳过线路,所以如果你能提供这些信息,我可以将代码更改为您需要的更多内容。