From 5047ee07ab2b263bcf9fbfbfa768c7643a057af6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Sat, 26 Nov 2022 09:49:13 -0300 Subject: [PATCH] Context Manager com contextlib.contextmanager --- aula149.txt | 2 ++ aula150.py | 22 ++++++++++++++++++++++ aula150.txt | 1 + 3 files changed, 25 insertions(+) create mode 100644 aula150.py create mode 100644 aula150.txt diff --git a/aula149.txt b/aula149.txt index 5f9afb6..ae73278 100644 --- a/aula149.txt +++ b/aula149.txt @@ -1 +1,3 @@ Linha 1 +Linha 2 +Linha 3 diff --git a/aula150.py b/aula150.py new file mode 100644 index 0000000..6ba7fc2 --- /dev/null +++ b/aula150.py @@ -0,0 +1,22 @@ +# Context Manager com função - Criando e Usando gerenciadores de contexto +from contextlib import contextmanager + + +@contextmanager +def my_open(caminho_arquivo, modo): + try: + print('Abrindo arquivo') + arquivo = open(caminho_arquivo, modo, encoding='utf8') + yield arquivo + except Exception as e: + print('Ocorreu erro', e) + finally: + print('Fechando arquivo') + arquivo.close() + + +with my_open('aula150.txt', 'w') as arquivo: + arquivo.write('Linha 1\n') + arquivo.write('Linha 2\n', 123) + arquivo.write('Linha 3\n') + print('WITH', arquivo) diff --git a/aula150.txt b/aula150.txt new file mode 100644 index 0000000..5f9afb6 --- /dev/null +++ b/aula150.txt @@ -0,0 +1 @@ +Linha 1