Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

“Skip a line” can mean four different things in Python: bypass one line while looping, skip blank lines, drop a fixed number of lines at the start of a file, or skip rows when loading a CSV file. Each has a different fix. Choose the one that matches your input, and use continue only when you are inside a loop.

Choose the right method for what you are skipping

The fastest way to pick a solution is to decide what the skipped line is. The table below maps each goal to the usual approach.

What you want to skip Approach Where it applies
Lines that match a condition, while processing a file continue inside a for or while loop Any text file you read line by line
Blank or whitespace-only lines if not line.strip(): continue Text files, including those with spaces or tabs on empty lines
The first line (for example, a header or banner) next(f, None) before the loop Text files opened in Python
A fixed number of leading lines enumerate and a line-number check, or next() called several times Text files with a known prefix
Rows in a CSV file loaded with pandas pd.read_csv(..., skiprows=...) and header pandas DataFrames
Header row in a CSV file read with the standard library next(reader, None) on a csv.reader Plain CSV files without pandas

Skip a line inside a loop with continue

continue ends the current pass through the loop body and moves to the next item. Python’s language reference describes it as continuing “with the next cycle of the nearest enclosing loop,” and it is valid only inside a for or while loop. Using it elsewhere raises a SyntaxError.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Skip lines that match a condition

with open("input.txt", encoding="utf-8") as f:
    for line in f:
        if should_skip(line):
            continue
        process(line)

Only the current line is bypassed. The loop keeps reading the remaining lines. should_skip and process stand in for your own functions.

Skip blank lines

with open("input.txt", encoding="utf-8") as f:
    for line in f:
        if not line.strip():
            continue
        process(line)

Calling strip() before the test also catches lines that contain only spaces or tabs. Testing line == "n" would miss those.

Skip blank lines with readline

When you read with readline(), the return value tells you what happened. A blank line comes back as a string containing only a newline, such as "n". An empty string means you have reached the end of the file. Keep the two cases separate, or the loop will either stop too early or never stop.

with open("input.txt", encoding="utf-8") as f:
    while True:
        line = f.readline()
        if line == "":
            break          # end of file
        if not line.strip():
            continue       # blank line, keep reading
        process(line)

Skip the first line or a fixed number of lines in a file

Dropping a prefix is different from skipping lines during a loop. You are not deciding line by line; you are moving the starting point. Python’s file tutorial describes looping over a file object as a simple and memory-efficient way to read text, so you can keep that style and only adjust where the loop begins.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Skip one line (for example, a header)

Call next() once on the open file before the loop. Supplying a default value, as shown, prevents StopIteration when the file is empty.

with open("input.txt", encoding="utf-8") as f:
    next(f, None)          # consume the first line
    for line in f:
        process(line)

Skip a variable number of lines

Use enumerate, which starts counting at zero. The check line_number < 2 therefore skips the first two lines.

with open("input.txt", encoding="utf-8") as f:
    for line_number, line in enumerate(f):
        if line_number < 2:
            continue
        process(line)

If the number of lines is large, a counter is clearer than calling next() many times. Avoid calling readlines() just to slice the list when the file is large, because it loads every line into memory first.

Skip rows in a CSV file

CSV data is structured, so skipping a line usually means skipping a record or the header. Treating it as plain text works for simple cases but breaks when fields contain quoted commas or line breaks. Use a CSV reader for these files.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Skip rows with pandas read_csv

The skiprows parameter accepts either an integer, which removes that many lines from the start of the file, or a list of zero-based line numbers. The header parameter then decides which row supplies the column names. The pandas documentation notes that when skip_blank_lines=True, which is the default, blank and comment lines are ignored when identifying the header, so header=0 refers to the first line of data rather than the first line of the file.

import pandas as pd

# File with two lines of metadata before the header row
df = pd.read_csv("data.csv", skiprows=2)

# Same file, skipping specific zero-based line numbers
df = pd.read_csv("data.csv", skiprows=[0, 3])

# File with no header row at all
df = pd.read_csv("data.csv", header=None)

The pandas API reference reviewed for this article is version 3.0.6. Check your installed version with pd.__version__ if your results differ.

Skip the header with the standard csv module

For a simple CSV file with no need for DataFrames, the built-in csv module works. Opening the file with newline="" follows the csv module’s documented recommendation for correct handling of embedded line breaks.

import csv

with open("data.csv", newline="", encoding="utf-8") as f:
    reader = csv.reader(f)
    next(reader, None)     # skip the header row
    for row in reader:
        process(row)
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Blank lines in Python source code

If you are asking how to leave a line blank or remove one from a .py file, there is no statement that tells the interpreter to ignore a source line. The parser disregards blank lines in source code automatically. Blank lines between functions and classes are a readability convention. PEP 8, Python’s style guide, recommends two blank lines around top-level function and class definitions and one blank line between methods inside a class. This is a formatting choice and does not affect how loops run. continue is unrelated to it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What skipping does not do

continue bypasses processing; it does not delete anything. If you need a cleaned copy of a file, read the input, filter the lines you want, and write them to a new file. Opening files with with ensures they close even if an error occurs during processing. Choose an explicit encoding when you know it, because the default depends on the platform. In text mode, Python also translates platform-specific line endings, so the same file can present line breaks slightly differently on different systems.

Troubleshooting common problems

  • SyntaxError on continue: the statement is outside a for or while loop. Move the logic inside the loop, or use an if block instead.
  • The wrong line becomes the header in pandas: the skipped lines may not match what pandas expects. Set header explicitly, or pass header=None and assign column names with names=.
  • A loop with readline never ends: the end-of-file check is missing. Stop when readline() returns an empty string, not when it returns a blank line.
  • Whitespace-only lines are still processed: test with line.strip() rather than comparing against "n".

The Python tutorial page reviewed for this article is the Python 3.10 edition. The approaches above use features that have long been part of the standard library and pandas, but confirm details against the documentation for the version you run.

The Bottom Line

“”

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.