सभी खुली फाइलों को ट्रैक करने के लिए मूल रूप से पाइथन में कोई रास्ता नहीं है। ऐसा करने के लिए आपको या तो सभी फाइलों को स्वयं ट्रैक करना चाहिए या हमेशा के साथ स्टेटमेंट का उपयोग उन फाइलों को खोलने के लिए करना चाहिए जो फाइल को अपने आप बंद कर देती हैं क्योंकि यह गुंजाइश से बाहर हो जाती है या एक त्रुटि का सामना करती है।
उदाहरण के लिए
with open('file.txt') as f:
# do something with f here आप सभी फाइलों को बंद करने के लिए एक क्लास भी बना सकते हैं और सभी फाइलों को बंद करने के लिए एक सिंगल क्लोज फंक्शन बना सकते हैं।
उदाहरण के लिए
class OpenFiles():
def __init__(self):
self.files = []
def open(self, file_name):
f = open(file_name)
self.files.append(f)
return f
def close(self):
list(map(lambda f: f.close(), self.files))
files = OpenFiles()
# use open method
foo = files.open("text.txt", "r")
# close all files
files.close()