Python Context Managers code snippets
This commit is contained in:
@@ -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())
|
||||
@@ -0,0 +1 @@
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user