This tutorial demonstrates the usage of the TFile class as a Python context manager.
import os
import ROOT
from ROOT import TFile
print(
"Current directory: '{}'.\n".
format(ROOT.gDirectory.GetName()))
histo_1 = ROOT.TH1F("histo_1", "histo_1", 10, 0, 10)
print(
"Histogram '{}' is attached to: '{}'.\n".
format(histo_1.GetName(), histo_1.GetDirectory().GetName()))
with TFile.Open(
"pyroot005_file_1.root",
"recreate")
as f:
histo_2 = ROOT.TH1F("histo_2", "histo_2", 10, 0, 10)
print(
"Current directory: '{}'.\n".
format(ROOT.gDirectory.GetName()))
print(
"Histogram '{}' is attached to: '{}'.\n".
format(histo_2.GetName(), histo_2.GetDirectory().GetName()))
f.WriteObject(histo_2, "my_histogram")
print("Status after the first TFile context manager:")
print(
" Current directory: '{}'.".
format(ROOT.gDirectory.GetName()))
print(
" Accessing 'histo_2' gives: '{}'.\n".
format(histo_2))
with TFile.Open(
"pyroot005_file_1.root",
"read")
as f:
histo_2_fromfile = f["my_histogram"]
print(
"Retrieved '{}' histogram from file '{}'.\n".
format(histo_2_fromfile.GetName(), f.GetName()))
os.remove("pyroot005_file_1.root")
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
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
Current directory: 'PyROOT'.
Histogram 'histo_1' is attached to: 'PyROOT'.
Current directory: 'pyroot005_file_1.root'.
Histogram 'histo_2' is attached to: 'pyroot005_file_1.root'.
Status after the first TFile context manager:
Current directory: 'PyROOT'.
Accessing 'histo_2' gives: 'None'.
Retrieved 'histo_2' histogram from file 'pyroot005_file_1.root'.
- Date
- March 2022
- Author
- Vincenzo Eduardo Padulano CERN/UPV
Definition in file pyroot005_tfile_context_manager.py.