使用 LegacyVTKReader 读取未知数量的 VTK 文件
read unknown number of VTK files with LegacyVTKReader
您好所以我正在使用 paraview "trace" 工具制作 python 脚本。
当我读取 vtk 文件时,python 脚本使用名为 "LegacyVTKReader" 的命令,然后是我打开的所有 VTK 文件的名称。像这样:
paraview = LegacyVTKReader( FileNames=
['/home/afshinzkh/Desktop/DEM/Sample 1/paraview0500.vtk',
'/home/afshinzkh/Desktop/DEM/Sample 1/paraview1000.vtk',
'/home/afshinzkh/Desktop/DEM/Sample 1/paraview1500.vtk',
'/home/afshinzkh/Desktop/DEM/Sample 1/paraview2000.vtk',
'/home/afshinzkh/Desktop/DEM/Sample 1/paraview2500.vtk'])
现在问题出在我的每个样本中,有不同数量的不同名称的 VTK 文件。所以我想以某种方式更改代码,以便它适用于我的所有示例。更准确地说,我想转到一个文件夹并读取该文件夹中的所有 VTK 文件。
像这样:
paraview paraview = LegacyVTKReader( FileNames=
['/home/afshinzkh/Desktop/DEM/Sample 1/*.vtk'])
有办法吗??
这里有一种方法可以满足您的要求。这将获得文件夹中所有文件的列表
from os import listdir
from os.path import isfile, join
# This is done to filter out directories
mypath = "path/to/my/dir"
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
for file in onlyfiles:
paraview paraview = LegacyVTKReader( FileNames= [file])
# do whatever else you do
这假定您有一个仅包含 .vtk 文件的文件夹。您当然也可以轻松地为此添加检查。
更简洁的方法是使用 glob
。
import glob
# Returns list of path names that matches
onlyfiles = glob.glob( mypath + '*.vtk')
for file in onlyfiles:
paraview paraview = LegacyVTKReader( FileNames= [file])
# do whatever else you do
您好所以我正在使用 paraview "trace" 工具制作 python 脚本。 当我读取 vtk 文件时,python 脚本使用名为 "LegacyVTKReader" 的命令,然后是我打开的所有 VTK 文件的名称。像这样:
paraview = LegacyVTKReader( FileNames=
['/home/afshinzkh/Desktop/DEM/Sample 1/paraview0500.vtk',
'/home/afshinzkh/Desktop/DEM/Sample 1/paraview1000.vtk',
'/home/afshinzkh/Desktop/DEM/Sample 1/paraview1500.vtk',
'/home/afshinzkh/Desktop/DEM/Sample 1/paraview2000.vtk',
'/home/afshinzkh/Desktop/DEM/Sample 1/paraview2500.vtk'])
现在问题出在我的每个样本中,有不同数量的不同名称的 VTK 文件。所以我想以某种方式更改代码,以便它适用于我的所有示例。更准确地说,我想转到一个文件夹并读取该文件夹中的所有 VTK 文件。 像这样:
paraview paraview = LegacyVTKReader( FileNames=
['/home/afshinzkh/Desktop/DEM/Sample 1/*.vtk'])
有办法吗??
这里有一种方法可以满足您的要求。这将获得文件夹中所有文件的列表
from os import listdir
from os.path import isfile, join
# This is done to filter out directories
mypath = "path/to/my/dir"
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
for file in onlyfiles:
paraview paraview = LegacyVTKReader( FileNames= [file])
# do whatever else you do
这假定您有一个仅包含 .vtk 文件的文件夹。您当然也可以轻松地为此添加检查。
更简洁的方法是使用 glob
。
import glob
# Returns list of path names that matches
onlyfiles = glob.glob( mypath + '*.vtk')
for file in onlyfiles:
paraview paraview = LegacyVTKReader( FileNames= [file])
# do whatever else you do