I have the code below, which unzips a zipfile containing only one file. Once it is unzipped, I want to rename the file based on a user provided name. But I get this (WindowsError: [Error 32] The process cannot access the file because it is being used by another process) error, which does not make sense to me as no other apps are open.
Any suggestions?
Thanks!
****CODE**** # Declare the zip file directory and name (shouldn't change, in a permanent location) mdb_zip = ("C:\\ProjWork\\mdb_geoDB_91.zip")
output_dir = ("C:\\Temp")
# ZipFile for read z = zipfile.ZipFile(mdb_zip, 'r') zFile = z.namelist()
# Put contents of zipfile into a list zList = z.namelist()
# Loop thru list, write zipfile contents to new directory for zItem in zList: print "Unpacking",zItem zRead = z.read(zItem) z1File = open(os.path.join(output_dir, zItem),'wb') z1File.write(zRead) z1File.close print "Finished extracting zip file"
uChoice = "test44.mdb" ## to be user chosen someday new91mdb = os.path.join(output_dir, zItem) # C:\TEMP\GDB_9_1.mdb
> I have the code below, which unzips a zipfile containing only one > file. Once it is unzipped, I want to rename the file based on a user > provided name. But I get this (WindowsError: [Error 32] The process > cannot access the file because it is being used by another process) > error, which does not make sense to me as no other apps are open.
> Any suggestions?
> Thanks!
> ****CODE**** > # Declare the zip file directory and name (shouldn't change, in a > permanent location) > mdb_zip = ("C:\\ProjWork\\mdb_geoDB_91.zip")
> output_dir = ("C:\\Temp")
> # ZipFile for read > z = zipfile.ZipFile(mdb_zip, 'r') > zFile = z.namelist()
> # Put contents of zipfile into a list > zList = z.namelist()
> # Loop thru list, write zipfile contents to new directory > for zItem in zList: > print "Unpacking",zItem > zRead = z.read(zItem) > z1File = open(os.path.join(output_dir, zItem),'wb') > z1File.write(zRead) > z1File.close
> On Dec 12, 10:15 am, noydb <jenn.du...@gmail.com> wrote:
> > All,
> > I have the code below, which unzips a zipfile containing only one > > file. Once it is unzipped, I want to rename the file based on a user > > provided name. But I get this (WindowsError: [Error 32] The process > > cannot access the file because it is being used by another process) > > error, which does not make sense to me as no other apps are open.
> > Any suggestions?
> > Thanks!
> > ****CODE**** > > # Declare the zip file directory and name (shouldn't change, in a > > permanent location) > > mdb_zip = ("C:\\ProjWork\\mdb_geoDB_91.zip")
> > output_dir = ("C:\\Temp")
> > # ZipFile for read > > z = zipfile.ZipFile(mdb_zip, 'r') > > zFile = z.namelist()
> > # Put contents of zipfile into a list > > zList = z.namelist()
> > # Loop thru list, write zipfile contents to new directory > > for zItem in zList: > > print "Unpacking",zItem > > zRead = z.read(zItem) > > z1File = open(os.path.join(output_dir, zItem),'wb') > > z1File.write(zRead) > > z1File.close
> z1File.close()
> > print "Finished extracting zip file"
> > uChoice = "test44.mdb" ## to be user chosen someday > > new91mdb = os.path.join(output_dir, zItem) # C:\TEMP\GDB_9_1.mdb
noydb wrote: > I have the code below, which unzips a zipfile containing only one > file. Once it is unzipped, I want to rename the file based on a user > provided name. But I get this (WindowsError: [Error 32] The process > cannot access the file because it is being used by another process) > error, which does not make sense to me as no other apps are open. > Any suggestions?
Others have told you the reason you are currently having problems. You should also be aware that Windows can at "random" times be opening the new file in order to either index it or virus scan it, and it may fail to rename during that period. So, a failure should retry in a second a couple of times before giving up. This is my understanding, but someone deeply familiar with Windows internals might reveal that I am operating on older information.
Scott David Daniels wrote: > noydb wrote: >> I have the code below, which unzips a zipfile containing only one >> file. Once it is unzipped, I want to rename the file based on a user >> provided name. But I get this (WindowsError: [Error 32] The process >> cannot access the file because it is being used by another process) >> error, which does not make sense to me as no other apps are open. >> Any suggestions?
> Others have told you the reason you are currently having problems. > You should also be aware that Windows can at "random" times be opening > the new file in order to either index it or virus scan it, and it may > fail to rename during that period. So, a failure should retry in a > second a couple of times before giving up. This is my understanding, > but someone deeply familiar with Windows internals might reveal that > I am operating on older information.
It's always a good idea pause and then retry a few times, just in case. Retrying is also a good idea when deleting a file, although in that case you might also want to check whether the file is read-only; if it is, then there's no point in retrying.