无法将变量传递给 Paraview 脚本
Unable to pass a variable to Paraview script
我有以下 bash 脚本
for f in C:/folder/inside/my_stuff/*; do
cd "$f" &&
for file in *.ply; do
"C:\Program Files\ParaView 4.4.0\bin\paraview.exe" --script="C:\folder\inside\my_stuff\screens2.py" $file
done
done
该脚本应该将 .ply 文件加载到 Paraview 中,然后执行一些命令,但我需要将 $file
传递给 Python 脚本,以便它知道要打开哪个文件.
我的脚本开头是这样的:
#### import the simple module from the paraview
from paraview.simple import *
import numpy as np
import glob
import sys
#### disable automatic camera reset on 'Show'
paraview.simple._DisableFirstRenderCameraReset()
files = sys.argv[1]
但是当我 运行 脚本时出现错误:
File "<string>", line 9, in <module>
AttributeError: 'module' object has no attribute 'argv'
所以变量没有传递给脚本。奇怪的是,.ply 文件确实加载到 Paraview 中,但执行了 none 的命令。我尝试了 sys.argv[0]
、sys.argv[2]
、sys.argv[3]
、sys.argv[file]
、sys.argv['file']
,但没有任何效果。
ParaView 不会将参数转发给脚本。未知命令行参数被解释为要在 ParaView 中打开的文件。
根据您想做什么,您应该:
- 使用 pvpython 可执行文件而不是 paraview 一个(如果你不需要自己使用 GUI)
"C:\Program Files\ParaView 4.4.0\bin\pvpython.exe" "C:\folder\inside\my_stuff\screens2.py" $file
- 将
for
循环放入脚本并重置每个文件之间的会话
我有以下 bash 脚本
for f in C:/folder/inside/my_stuff/*; do
cd "$f" &&
for file in *.ply; do
"C:\Program Files\ParaView 4.4.0\bin\paraview.exe" --script="C:\folder\inside\my_stuff\screens2.py" $file
done
done
该脚本应该将 .ply 文件加载到 Paraview 中,然后执行一些命令,但我需要将 $file
传递给 Python 脚本,以便它知道要打开哪个文件.
我的脚本开头是这样的:
#### import the simple module from the paraview
from paraview.simple import *
import numpy as np
import glob
import sys
#### disable automatic camera reset on 'Show'
paraview.simple._DisableFirstRenderCameraReset()
files = sys.argv[1]
但是当我 运行 脚本时出现错误:
File "<string>", line 9, in <module>
AttributeError: 'module' object has no attribute 'argv'
所以变量没有传递给脚本。奇怪的是,.ply 文件确实加载到 Paraview 中,但执行了 none 的命令。我尝试了 sys.argv[0]
、sys.argv[2]
、sys.argv[3]
、sys.argv[file]
、sys.argv['file']
,但没有任何效果。
ParaView 不会将参数转发给脚本。未知命令行参数被解释为要在 ParaView 中打开的文件。
根据您想做什么,您应该:
- 使用 pvpython 可执行文件而不是 paraview 一个(如果你不需要自己使用 GUI)
"C:\Program Files\ParaView 4.4.0\bin\pvpython.exe" "C:\folder\inside\my_stuff\screens2.py" $file
- 将
for
循环放入脚本并重置每个文件之间的会话