Help Needed. Removing a Folder Problem

K

Kilicaslan Fatih

When I push a button to trigger the code:

def runCCCC(self, event):
cmd_out = self.A_com()
if App.runF != "":
os.mkdir('C:\copiedFiles')

for item in App.runF:
App.beCopied = str(item)
shutil.copy(App.beCopied,
'C:\copiedFiles')
cmd = 'cccc C:\copiedFiles\*.*' + cmd_out
os.system(cmd)
shutil.rmtree('C:\copiedFiles')
else:
tkMessageBox.showinfo("Window Text",
"Please Firstly Browse and Insert A File")


I encountered this error:

Traceback (most recent call last):
File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345,
in __call__
return self.func(*args)
File "C:\Python24\TkScripts\RCFolder.py", line 61,
in runCCCC
shutil.rmtree('C:\copiedFiles',
ignore_errors=False)# OLMADI!!!
File "C:\Python24\lib\shutil.py", line 168, in
rmtree
onerror(os.remove, fullname, sys.exc_info())
File "C:\Python24\lib\shutil.py", line 166, in
rmtree
os.remove(fullname)
OSError: [Errno 13] Permission denied:
'C:\\copiedFiles\\Analog.c'

1. What I want to do is to get the list of files I
inserted to a Listbox,
2. Creating a folder,(C:\copiedFiles)
3. Copying all of these files to this folder with the
same names,
4. Running CCCC for all of the files in this folder,
5. Than removing this folder.

Can anyone enlighten me on this Error I have got and
how to solve it?

Regards


__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
 
L

Larry Bates

Note the error is permission denied. I would guess that
either the file has read-only flag set or perhaps the
'cccc' program is still running and has the file open
in a separate thread so you can't delete the directory
until it has completed. You should take a look at the
subprocess module and use something like (not tested):

retcode = call([r'cccc C:\copiedfiles\*.*', cmd_out])

This will wait for execution of cccc to complete prior
to returning.

-Larry Bates
 
L

Larry Bates

Note the error is permission denied. I would guess that
either the file has read-only flag set or perhaps the
'cccc' program is still running and has the file open
in a separate thread so you can't delete the directory
until it has completed. You should take a look at the
subprocess module and use something like (not tested):

retcode = call([r'cccc C:\copiedfiles\*.*', cmd_out])

This will wait for execution of cccc to complete prior
to returning.

-Larry Bates
 
S

Steve Holden

Kilicaslan Fatih wrote:
[...]
Dear All,

I changed the mode of the files before copying them.
So the problem is solved as follows:

SOLUTION:

def runCCCC(self, event):
cmd_out = self.A_com()
if App.runF != "":
os.mkdir('C:\copiedFiles')

for item in App.runF:
os.chmod(item, 0700)
shutil.copy(item, 'C:\copiedFiles')

cmd = 'cccc C:\copiedFiles\*.*' + cmd_out
os.system(cmd)
for root,dir,files in
os.walk("C:\copiedFiles"):

shutil.rmtree('C:\copiedFiles')
else:
tkMessageBox.showinfo("Window Text",
"Please Firstly Browse and Insert A File")
Just be careful with those string constants: you should really be using
either 'C:\\copiedFiles' or r'C:\copiedFiles'. No problems at the moment
because "\c" isn't a defined escape sequence, but if your directory name
had begun with a "t", for example, you'd have got a tab after the colon.

regards
Steve
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,154
Members
46,701
Latest member
XavierQ83

Latest Threads

Top