Issue #10265: Close file objects explicitly in sunau.  Patch by Brian Brazil.
diff --git a/Lib/sunau.py b/Lib/sunau.py
index 5f50e8f..6775a53 100644
--- a/Lib/sunau.py
+++ b/Lib/sunau.py
@@ -154,6 +154,9 @@
         if type(f) == type(''):
             import builtins
             f = builtins.open(f, 'rb')
+            self._opened = True
+        else:
+            self._opened = False
         self.initfp(f)
 
     def __del__(self):
@@ -275,6 +278,8 @@
         self._soundpos = pos
 
     def close(self):
+        if self._opened and self._file:
+            self._file.close()
         self._file = None
 
 class Au_write:
@@ -283,11 +288,15 @@
         if type(f) == type(''):
             import builtins
             f = builtins.open(f, 'wb')
+            self._opened = True
+        else:
+            self._opened = False
         self.initfp(f)
 
     def __del__(self):
         if self._file:
             self.close()
+        self._file = None
 
     def initfp(self, file):
         self._file = file
@@ -401,6 +410,8 @@
                   self._datalength != self._datawritten:
             self._patchheader()
         self._file.flush()
+        if self._opened and self._file:
+            self._file.close()
         self._file = None
 
     #