You have to make fp global variable. What you get is fp descriptor is lost after subroutine ended, file closes, lock gets freed.
def lockFile(lockfile): global fp fp = open(lockfile, 'w') # create a new one