[Tutor] Redid the last code "fixhash" with a couple of changes and I keep getting this syntax error I can't figure out

Danny danny@i4.net
Sat, 21 Sep 2002 00:31:12 -0600


Thankyou everyone for your continued help

here is the error

SyntaxError: invalid syntax
Traceback (most recent call last):
  File "<string>", line 1, in ?
  File "C:\Python21\fiinalfixhash.py", line 44
    def fixdirectory ( arg, d, dlist ) :
      ^
SyntaxError: invalid syntax

and here is the code

#!/usr/local/bin/python

import os
import sys
import fileinput
from stat import *

pbang = "#!" + sys.executable
nfiles = 0
nm = " "

def initial ( y = 0 ) :
    global nm
    if v != 0 :
        if sys.platform == "win32" :
            sys.stderr.write ( "Python Version " + sys.version + \
            " Running on Windows\n" )
        elif sys.platform == "linux2" :
            sys.stderr.write ( "Python Version " + sys.version + \
            " Running on Lynux\n" )
        else :
            sys.stderr.write ( "Python Version " + sys.version + \
            " Running on " + sys.platform + "\n" )

        nm = os.path.split ( sys.argv[ 0 ] )[ 1 ]

def getnfiles ( ) :
    return nfiles

def rewritefile ( flp ):
    global pbang
    mode = os.stat ( fip )[ ST_MODE ]
    for line in fileinput.input ( fip, inplace = 1 ):
        if fileinput.isfirstline ( ) :
            if line [ : 2 ] == "#!" :
                sys.stdout.write ( pbang + "\n" )
            else:
                sys.stdout.write ( pbang + "\n" )
                sys.stdout.write ( line )
        else:
            sys.stdout.write ( line )
    fileinput.close ( )
    os.chmod ( fip, mode
def fixdirectory ( arg, d, dlist ) :
    global nfiles
    nfiles > 0
    for i in dlist :
        if i == nm :
            continue
        if len ( i ) > 4 :
            fname = os.path.join (d, i)
            if fname[ -3 : ] == ".py" :
                sys.stderr.write ( "Checking " + fname + "...\n" )
                for line in fileinput.input ( fname, os.W_OK ) :
                    if fileinput.isfirstline ( ) :
                        if line[ : -1 ] != pbang :
                            fileinput.close ( )
                            t = os.access ( fname, os.W_OK )
                            if t == 0 :
                                sys.stderr.write ( fname + \
                                " is not writable; skipping,\n" )
                            else:
                                sys.stderr.write ( \
                                "Modifing " + fname + "...\n" )
                                rewritefile ( fname )
                                nfiles = nfiles + 1
                            break
                        else:
                            fileinput.close ( )
                            break
    return n.files
   
def fixhash ( d, r, v ) :
    nmod = 0
    if type ( d ) != type ( [] ) :
        dl = list ( d )
    else:
        dl = d
    initial ( y )
    for i in dl :
        if not r :
            dlist = os.listdir ( i )
            fixdirectory ( v, i, dlist )
        else:
            os.path.walk ( i, fixdirectory, v )
        nmod = nmod + getnfiles ( )
    return nmod

if __name__ == "__main__" :
    nmod = 0
    recurse = 0
    if len ( sys.argv ) > 1 :

        if sys.argv[1] == '-r' :
            recurse = 1
        if recurse and len ( sys.argv ) > 2 :
            dirnames = sys.argv[ 2 : ]
        elif recurse and len ( sys.argv ) <= 2 :
            dirnames = [ "." ]
        else:
            dirnames = sys.argv[ 1 : ]
    else:
        dirnames = [ "." ]
    for s in dirnames :
        if not recurse :
            dlist = os.listdir ( s )
            fixdirectory ( 0, s, dlist )
        else:
            os.path.walk ( s, fixdirectory, 0 )
        nmod = nmod + getfiles ( )
        
sys.stderr.write ( "Files modifed: " + `nmod` + "\n" )

Thanks again for all you all do have a great night and a great weekend

Danny D