Il est utilisé lors de la définition du traitement à effectuer uniquement avec le bloc with de Python.
Exemple:
sans aucun bloc
f = open('hoge.txt', 'w')
f.write('hoge\n')
f.close()
Il y a un bloc «avec»
with open('hoge.txt', 'w') as f:
    f.write('hoge\n')
Connectez-vous au serveur uniquement dans le bloc with en utilisant le package paramiko
import os
from contextlib import contextmanager
import paramiko
def connect_ssh(host, username=None, password=None):
    return _connect_ssh_context(host, username, password)
@contextmanager
def _connect_ssh_context(host, username, password):
    try:
        #Prétraitement
        ssh = paramiko.SSHClient()
        ssh.load_host_keys(os.path.expanduser('~/.ssh/known_hosts'))
        ssh.connect(host, username=username, password=password)
        yield ssh  #Variables que vous souhaitez recevoir avec comme
    finally:
        #Post-traitement
        ssh.close()
with connect_ssh('server', 'username') as f:
    _, stdout, stderr = f.exec_command('ls')
    print(stdout.read())
        Recommended Posts