File: class/Workbook/Exercises/Lab5/ex1.txt

[The basic solution]

% cat mymod.py

def countLines(name):
    file = open(name, 'r')
    return len(file.readlines())

def countChars(name):
    return len(open(name, 'r').read())

def test(name):                                  # or pass file object
    return countLines(name), countChars(name)    # or return a dictionary


% python
>>> import mymod
>>> mymod.test('mymod.py')
(10, 291)



[Passing an open file object]

% cat mymod2.py
def countLines(file):
    file.seek(0)                      # rewind to start of file
    return len(file.readlines())

def countChars(file): 
    file.seek(0)                      # ditto (rewind if needed)
    return len(file.read())

def test(name):
    file = open(name, 'r')                       # pass file object
    return countLines(file), countChars(file)    # only open file once

>>> import mymod2
>>> mymod2.test("mymod2.py")
(11, 392)



[Home page] Books Code Blog Python Author Train Find ©M.Lutz