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
##os.rename(new91mdb, (os.path.join(output_dir, uChoice)))
os.rename(new91mdb, (os.path.join(output_dir, "C:\TEMP\test1.mdb")))
del new91mdb
Thanks! That was simple enough.
And...
##os.rename(new91mdb, (os.path.join(output_dir, uChoice)))
os.rename(new91mdb, (os.path.join(output_dir, "C:\TEMP\test1.mdb")))
... of those two lines, the top one worked.
The reason the second one didn't work is because "\t" is the tab
character. Look for "raw strings" in the documentation.
r"C:\TEMP\test1.mdb" should work.
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
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
Scott....@Acm.Org