summaryrefslogtreecommitdiff
path: root/Lib/zipfile.py
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2007-02-13 10:10:39 +0000
committerMartin v. Löwis <martin@v.loewis.de>2007-02-13 10:10:39 +0000
commit081c73e9b7e3ccf510264348cb5628362a7c2be6 (patch)
tree7254882e103b8cf13ff80b3b1a20ee73bb45f056 /Lib/zipfile.py
parent41cf400695a5d2cd4534d93986582600c214b19b (diff)
downloadcpython-081c73e9b7e3ccf510264348cb5628362a7c2be6.tar.gz
Patch #1517891: Make 'a' create the file if it doesn't exist.
Fixes #1514451.
Diffstat (limited to 'Lib/zipfile.py')
-rw-r--r--Lib/zipfile.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/Lib/zipfile.py b/Lib/zipfile.py
index 93a0b75edb..6e59242b32 100644
--- a/Lib/zipfile.py
+++ b/Lib/zipfile.py
@@ -396,7 +396,14 @@ class ZipFile:
self._filePassed = 0
self.filename = file
modeDict = {'r' : 'rb', 'w': 'wb', 'a' : 'r+b'}
- self.fp = open(file, modeDict[mode])
+ try:
+ self.fp = open(file, modeDict[mode])
+ except IOError:
+ if mode == 'a':
+ mode = key = 'w'
+ self.fp = open(file, modeDict[mode])
+ else:
+ raise
else:
self._filePassed = 1
self.fp = file