Python Context Managers code snippets

This commit is contained in:
Corey Schafer
2017-12-19 21:43:13 -07:00
parent fab06d0992
commit 206aec57e4
9 changed files with 61 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
import os
from contextlib import contextmanager
@contextmanager
def change_dir(destination):
try:
cwd = os.getcwd()
os.chdir(destination)
yield
finally:
os.chdir(cwd)
with change_dir('Sample-Dir-One'):
print(os.listdir())
with change_dir('Sample-Dir-Two'):
print(os.listdir())
+1
View File
@@ -0,0 +1 @@
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+41
View File
@@ -0,0 +1,41 @@
class Open_File():
def __init__(self, destination):
pass
def __enter__(self):
pass
def __exit__(self, exc_type, exc_val, traceback):
pass
#### Using contextlib ####
@contextmanager
def open_file(file, mode):
f = open(file, mode)
yield f
f.close()
with open_file('sample.txt', 'w') as f:
f.write('Lorem ipsum dolor sit amet, consectetur adipiscing elit.')
print(f.closed)
#### CD Example ####
cwd = os.getcwd()
os.chdir('Sample-Dir-One')
print(os.listdir())
os.chdir(cwd)
cwd = os.getcwd()
os.chdir('Sample-Dir-Two')
print(os.listdir())
os.chdir(cwd)