user1006198
user1006198

Reputation: 5407

python: how to check if a line is an empty line

Trying to figure out how to write an if cycle to check if a line is empty.

The file has many strings, and one of these is a blank line to separate from the other statements (not a ""; is a carriage return followed by another carriage return I think)

new statement
asdasdasd
asdasdasdasd

new statement
asdasdasdasd
asdasdasdasd

Since I am using the file input module, is there a way to check if a line is empty?

Using this code it seems to work, thanks everyone!

for line in x:

    if line == '\n':
        print "found an end of line"

x.close()

Upvotes: 105

Views: 336346

Answers (5)

retracile
retracile

Reputation: 12339

If you want to ignore lines with only whitespace:

if line.strip():
    ... do something

The empty string is a False value.

Or if you really want only empty lines:

if line in ['\n', '\r\n']:
    ... do  something

Upvotes: 164

alemol
alemol

Reputation: 8672

I think is more robust to use regular expressions:

import re

for i, line in enumerate(content):
    print line if not (re.match('\r?\n', line)) else pass

This would match in Windows/unix. In addition if you are not sure about lines containing only space char you could use '\s*\r?\n' as expression

Upvotes: 2

bevardgisuser
bevardgisuser

Reputation: 413

I use the following code to test the empty line with or without white spaces.

if len(line.strip()) == 0 :
    # do something with empty line

Upvotes: 38

Fred Foo
Fred Foo

Reputation: 363817

line.strip() == ''

Or, if you don't want to "eat up" lines consisting of spaces:

line in ('\n', '\r\n')

Upvotes: 12

hochl
hochl

Reputation: 12960

You should open text files using rU so newlines are properly transformed, see http://docs.python.org/library/functions.html#open. This way there's no need to check for \r\n.

Upvotes: 2

Related Questions