কয়েকটি উদাহরণ হ'ল : ফাইল ব্যবহার করে ফাইল with open(filename) as fp:খুলুন, লক ব্যবহার করে with lock:(যেখানে এর lockউদাহরণ রয়েছে threading.Lock) অর্জন করা। এছাড়াও আপনি ব্যবহার করে আপনার নিজস্ব প্রসঙ্গের পরিচালকদের গঠন করা যেতে পারে contextmanagerথেকে প্রসাধক contextlib। উদাহরণস্বরূপ, আমি প্রায়শই এটি ব্যবহার করি যখন আমাকে বর্তমান ডিরেক্টরিটি অস্থায়ীভাবে পরিবর্তন করতে হবে এবং তারপরে আমি যেখানে ছিলাম সেখানে ফিরে আসতে হবে:
from contextlib import contextmanager
import os
@contextmanager
def working_directory(path):
current_dir = os.getcwd()
os.chdir(path)
try:
yield
finally:
os.chdir(current_dir)
with working_directory("data/stuff"):
# do something within data/stuff
# here I am back again in the original working directory
এখানে আরেকটি উদাহরণ সাময়িকভাবে পুননির্দেশনা এর sys.stdin, sys.stdoutএবং sys.stderrঅন্য কোনো ফাইল হ্যান্ডেল এবং তাদের পুনরুদ্ধার পরে:
from contextlib import contextmanager
import sys
@contextmanager
def redirected(**kwds):
stream_names = ["stdin", "stdout", "stderr"]
old_streams = {}
try:
for sname in stream_names:
stream = kwds.get(sname, None)
if stream is not None and stream != getattr(sys, sname):
old_streams[sname] = getattr(sys, sname)
setattr(sys, sname, stream)
yield
finally:
for sname, stream in old_streams.iteritems():
setattr(sys, sname, stream)
with redirected(stdout=open("/tmp/log.txt", "w")):
# these print statements will go to /tmp/log.txt
print "Test entry 1"
print "Test entry 2"
# back to the normal stdout
print "Back to normal stdout again"
এবং পরিশেষে, অন্য একটি উদাহরণ যা একটি অস্থায়ী ফোল্ডার তৈরি করে এবং প্রসঙ্গটি রেখে যাওয়ার সময় এটি পরিষ্কার করে:
from tempfile import mkdtemp
from shutil import rmtree
@contextmanager
def temporary_dir(*args, **kwds):
name = mkdtemp(*args, **kwds)
try:
yield name
finally:
shutil.rmtree(name)
with temporary_dir() as dirname:
# do whatever you want
withপাইথন 3 ডকুমেন্টেশন রয়েছে।