This is a bit of python code that will check python files before adding them to a CMSSW job. This is nice when a previous step (generation) is unreliable over a large number of files.
myFileNames = cms.untracked.vstring()
nEventsSkip=0
for i in range(1001,6001):
dirNameString = '/dir/'
fileNameString = 'filename'+str(i)+'.root'
fileNameString = dirNameString + fileNameString
try:
dummyFile = open(fileNameString,"rb")
dummyFile.close()
dummyRootFile = ROOT.TFile(fileNameString)
if dummyRootFile.GetSize() != -1:
myFileNames.extend(["file:"+fileNameString])
else:
print("Warning: ROOT Could not open " + fileNameString)
dummyRootFile.Close()
except IOError:
print("Warning: Could not open "+fileNameString)
except os.error:
print("Warning: OSError!!")
process.source = cms.Source("PoolSource",
fileNames = myFileNames,
skipEvents = cms.untracked.uint32(nEventsSkip)
)