diff --git a/Python-Context-Managers/Sample-Dir-One/mydoc.txt b/Python-Context-Managers/Sample-Dir-One/mydoc.txt new file mode 100644 index 0000000..e69de29 diff --git a/Python-Context-Managers/Sample-Dir-One/todo.txt b/Python-Context-Managers/Sample-Dir-One/todo.txt new file mode 100644 index 0000000..e69de29 diff --git a/Python-Context-Managers/Sample-Dir-One/work.txt b/Python-Context-Managers/Sample-Dir-One/work.txt new file mode 100644 index 0000000..e69de29 diff --git a/Python-Context-Managers/Sample-Dir-Two/demo.txt b/Python-Context-Managers/Sample-Dir-Two/demo.txt new file mode 100644 index 0000000..e69de29 diff --git a/Python-Context-Managers/Sample-Dir-Two/sample.txt b/Python-Context-Managers/Sample-Dir-Two/sample.txt new file mode 100644 index 0000000..e69de29 diff --git a/Python-Context-Managers/Sample-Dir-Two/test.txt b/Python-Context-Managers/Sample-Dir-Two/test.txt new file mode 100644 index 0000000..e69de29 diff --git a/Python-Context-Managers/cm_demo.py b/Python-Context-Managers/cm_demo.py new file mode 100644 index 0000000..823866a --- /dev/null +++ b/Python-Context-Managers/cm_demo.py @@ -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()) diff --git a/Python-Context-Managers/sample.txt b/Python-Context-Managers/sample.txt new file mode 100644 index 0000000..d863439 --- /dev/null +++ b/Python-Context-Managers/sample.txt @@ -0,0 +1 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit. \ No newline at end of file diff --git a/Python-Context-Managers/snippets.txt b/Python-Context-Managers/snippets.txt new file mode 100644 index 0000000..3d64909 --- /dev/null +++ b/Python-Context-Managers/snippets.txt @@ -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) + +