I think you want to be doing something like:

>>>for r,d,f in os.walk('.'):
...     for filename in f:
...             print os.path.join(r,filename)

I think that would give you the full path of every file, and then you can open 
it, do a regex substitution or whatever close it and
keep going.

Thanks,
Ryan 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Nick Lunt
Sent: Friday, January 07, 2005 5:32 PM
To: python tutor
Subject: [Tutor] walking directories

Hi folks,

Im running python2.4 on linux.

I have many python scripts in various directories of varying depth under my 
home directory, and I need to change one line in each of
these files.

I thought about using os.walk with os.path.join eg

>>> for r,d,f in os.walk('.'):
...     print os.path.join(r,d,f)

but I get this error
Traceback (most recent call last):
  File "<stdin>", line 2, in ?
  File "/usr/local/lib/python2.4/posixpath.py", line 60, in join
    if b.startswith('/'):
AttributeError: 'list' object has no attribute 'startswith'

which makes sense.

I know I can use glob.glob on the current directory, but Im struggling to see 
how I can access these files, change them and save the
changes.

Im also a little annoyed with myself cos I feel that I really should know how 
to do this by now.

If anyone can just give me a pointer in the right direction I would be very 
grateful.

Many thanks
Nick .

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to