How to count lines in a text file ?

Phil Frost indigo at
Mon Sep 20 15:27:48 CEST 2004

Yes, you need a for loop, and a count variable. You can count in several
ways. File objects are iterable, and they iterate over the lines in the
file. readlines() returns a list of the lines, which will have the same
effect, but because it builds the entire list in memory first, it uses
more memory. Example:


filename = raw_input('file? ')
file = open(filename)

lines = 0
for line in file:
  # line is ignored here, but it contains each line of the file,
  # including the newline
  lines += 1

print '%r has %r lines' % (filename, lines)


another alternative is to use the standard posix program "wc" with the
-l option, but this isn't Python.

On Mon, Sep 20, 2004 at 03:18:53PM +0200, Ling Lee wrote:
> Hi all.
> I'm trying to write a program that:
> 1) Ask me what file I want to count number of lines in, and then counts the 
> lines and writes the answear out.
> 2) I made the first part like this:
> in_file = raw_input("What is the name of the file you want to open: ")
> in_file = open("test.txt","r")
> text =
> 3) I think that I have to use a for loop ( something like: for line in text: 
> count +=1)
> Or maybee I have to do create a def: something like: ( def loop(line, 
> count)), but not sure how to do this properly.
> And then perhaps use the readlines() function, but again not quite sure how 
> to do this. So do one of you have a good idea.
> Thanks for all help

More information about the Python-list mailing list