[Tutor] Change files

David Holland davholla2002 at yahoo.co.uk
Sun Feb 12 16:20:22 CET 2006


Thanks,  now I understand and that works perfectly.

Senthil_OR at Dell.com wrote:     David,
  in getfiles, the os.getcwd() points the main programs cwd only and  so shutil.copy() fails.
 so  changing to name = os.path.join(root,name) helps us get the file in the  directory we checked against.
  
 def  getfiles(file1,file2,top):
    for root, dirs, files in  os.walk(top):
        for dirname in  dirs:
             print  dirname
             for name in  files:
                 if name ==  file1:
                     name =  os.path.join(root,name)
                     print "the name is" +  name
                     shutil.copy(file2,name)
                     print "copied one  file"
                     print os.getcwd()
  
 import os
import shutil
#main
top = r'c:\temp'
a =  os.getcwd()
filename = 'some.txt'
file1 = filename
file2 = a+ os.sep  +filename
print file2
getfiles(filename, file2,top)
print  "finished"

  
 thanks!
  
 --
Senthil
  
  

       
---------------------------------
   From: tutor-bounces at python.org    [mailto:tutor-bounces at python.org] On Behalf Of David    Holland
Sent: Sunday, February 12, 2006 3:40 AM
To:    Bruce
Cc: tutor python
Subject: Re: [Tutor] Change    files


   
Bruce,

Thanks but is was not the solution.  It goes    through all the directories but does not seem to work.
Here is the modified    code :-
def getfiles(file1,file2,top):
    for root,    dirs, files in os.walk(top):
        for    name in    dirs:
               print    name
            for    name in    files:
                   if name ==    file1:
                       name =    os.getcwd()+'/'+name
                       print "the name is" +    name
                       shutil.copy(file2,name)
                       print "copied one    file"
                       print os.getcwd()

import os
import shutil
#main
top =    '/home'
a = os.getcwd()
filename = 'abcde'
file1 = filename
file2    = a+'/'+filename
print file2
getfiles(filename, file2,top)
print    "finished"

David


Bruce    <epost2 at gmail.com> wrote:   I      guess that you need to fix two things:

1 the indentaion error after      for name in files:

2 specify full path for the destination arg in      shutil.copy


On 2/10/06, David Holland wrote:
> I wrote a little program that replaces all      files called 'abcde' with the
> file in the directory from which you      riun the program. However it does not
> find them (there is another      one).
> What have I done wrong :-
> #this program copies the      file x to all other places in the directory.
> #however it does not go      to the right places
> def getfiles(file1,file2,top):
> for root,      dirs, files in os.walk(top):
> for name in dirs:
> for name in      files:
> if name == file1:
> shutil.copy(file2,name)
>      print "copied one file"
>
> import os
> import      shutil
> #main
> top = '/home'
> a = os.getcwd()
>      filename = 'abcde'
> file1 = filename
> file2 =      a+'/'+filename
> getfiles(file1, file2,top)
> print      "finished"
>
>
>
>
>      ________________________________
> To help you stay safe and secure      online, we've developed the all new Yahoo!
> Security      Centre.
>
>
>      _______________________________________________
> Tutor maillist -      Tutor at python.org
>      http://mail.python.org/mailman/listinfo/tutor
>
>
>

      

---------------------------------
   Yahoo!    Photos – NEW, now offering a quality    print service from just 8p a photo.


------------------------------------------------------------------------------------------------------------------------------------
 First they came for the Danes, but I did not speak out because I am not a Dane.

		
---------------------------------
To help you stay safe and secure online, we've developed the all new Yahoo! Security Centre.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20060212/0eace3c4/attachment.htm 


More information about the Tutor mailing list