bpo-30017: Allowed calling the close() method of the zip entry writer object (#1041)

multiple times.  Writing to closed zip entry writer object now always produce
a ValueError.
diff --git a/Lib/zipfile.py b/Lib/zipfile.py
index 550e64f..988f39e 100644
--- a/Lib/zipfile.py
+++ b/Lib/zipfile.py
@@ -980,6 +980,8 @@
         return True
 
     def write(self, data):
+        if self.closed:
+            raise ValueError('I/O operation on closed file.')
         nbytes = len(data)
         self._file_size += nbytes
         self._crc = crc32(data, self._crc)
@@ -990,6 +992,8 @@
         return nbytes
 
     def close(self):
+        if self.closed:
+            return
         super().close()
         # Flush any data from the compressor, and update header info
         if self._compressor: