This tutorial demonstrates the usage of the TContext class as a Python context manager. This functionality is related with how TFile works, so it is suggested to also take a look at the pyroot005 tutorial.
import os
 
import ROOT
from ROOT import TDirectory, TFile
 
file_1 = 
TFile(
"pyroot006_file_1.root", 
"recreate")
 
file_2 = 
TFile(
"pyroot006_file_2.root", 
"recreate")
 
print(
"Current directory: '{}'.\n".
format(ROOT.gDirectory.GetName()))
 
    
    print(
"Current directory: '{}'.\n".
format(ROOT.gDirectory.GetName()))
 
    histo_1 = ROOT.TH1F("histo_1", "histo_1", 10, 0, 10)
    file_1.WriteObject(histo_1, "my_histogram")
 
print(
"Current directory: '{}'.\n".
format(ROOT.gDirectory.GetName()))
 
if file_1.IsOpen() and file_2.IsOpen():
    print(
"'{}' and '{}' are open.\n".
format(file_1.GetName(), file_2.GetName()))
 
 
    print(
"Current directory: '{}'.\n".
format(ROOT.gDirectory.GetName()))
 
    histo_2 = ROOT.TH1F("histo_2", "histo_2", 10, 0, 10)
    f.WriteObject(histo_2, "another_histogram")
 
print(
"Current directory: '{}'.\n".
format(ROOT.gDirectory.GetName()))
 
 
file_1.Close();
file_2.Close();
for i in range(1, 4):
    os.remove(
"pyroot006_file_{}.root".
format(i))
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
 
TDirectory::TContext keeps track and restore the current directory.
 
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
 
  Current directory: 'pyroot006_file_2.root'.
 
Current directory: 'pyroot006_file_1.root'.
 
Current directory: 'pyroot006_file_2.root'.
 
'pyroot006_file_1.root' and 'pyroot006_file_2.root' are open.
 
Current directory: 'pyroot006_file_3.root'.
 
Current directory: 'pyroot006_file_2.root'.
 
- Date
 - March 2022 
 
- Author
 - Vincenzo Eduardo Padulano CERN/UPV 
 
Definition in file pyroot006_tcontext_context_manager.py.