[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