def testGlobFileNames(self): globFileNames = vtk.vtkGlobFileNames() globFileNames.SetDirectory(VTK_DATA_ROOT + "/Data/") # globs do not include Kleene star support for pattern repetitions thus # we insert a pattern for both single and double digit file extensions. globFileNames.AddFileNames("headsq/quarter.[1-9]") globFileNames.AddFileNames("headsq/quarter.[1-9][0-9]") fileNames = globFileNames.GetFileNames() n = globFileNames.GetNumberOfFileNames() if n != 93: for i in range(0, n): print("File:", i, " ", fileNames.GetValue(i)) print("GetNumberOfValues should return 93, returned", n) print("Listing of ", VTK_DATA_ROOT, "/Data/headsq") directory = vtk.vtkDirectory() directory.Open(VTK_DATA_ROOT + "/Data/headsq") m = directory.GetNumberOfFiles() for j in range(0, m): print(directory.GetFile(j)) exit(1) for i in range(0, n): filename = fileNames.GetValue(i) if filename != globFileNames.GetNthFileName(i): print("mismatched filename for pattern quarter.*:", filename) exit(1) m = re.search("[\w|\W]*quarter.*", filename) if m == None: print("string does not match pattern quarter.*:", filename) # check that we can re-use the Glob object globFileNames.Reset() globFileNames.SetDirectory(VTK_DATA_ROOT + "/Data/") globFileNames.AddFileNames(VTK_DATA_ROOT + "/Data/financial.*") fileNames = globFileNames.GetFileNames() n = fileNames.GetNumberOfValues() for i in range(0, n): filename = fileNames.GetValue(i) if filename != globFileNames.GetNthFileName(i): print("mismatched filename for pattern financial.*: ", filename) exit(1) m = re.search("[\w|\W]*financial.*", filename) if m == None: print("string does not match pattern financial.*:", filename) exit(1) vtk.test.Testing.interact()
def ScanDirectory(self, dirname): ''' Call this method to scan an entire directory. This will add every dataset that is readable in the manager. @param dirname: str @rtype: None ''' directory=vtk.vtkDirectory() ret=directory.Open(dirname) if not ret: raise IOError, "Cannot open directory %s"%(dirname) list = [] for i in range(directory.GetNumberOfFiles()): if directory.GetFile(i) in [".", ".."]: continue list.append(os.path.join(dirname, directory.GetFile(i))) list.sort() for filepath in list: try: self.ReadFile(filepath) except: # we don't throw exception as we want to continue scanning the directory print "skipping file %s"%(filepath)