无法向Paraview脚本传递一个变量。

问题描述 投票:1回答:1

我有以下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中,但是没有一个命令被执行。我试过 sys.argv[0], sys.argv[2], sys.argv[3], sys.argv[file], sys.argv['file']但是什么都没有用。

python paraview
1个回答
1
投票

ParaView不会将参数转发给脚本。未知的命令行参数会被解释为在ParaView中打开的文件。

根据你想做的事情,你应该: 1:

  • 使用 pvpython 可执行文件代替 paraview (如果你不需要自己使用 GUI)
"C:\\Program Files\\ParaView 4.4.0\\bin\\pvpython.exe" "C:\\folder\\inside\\my_stuff\\screens2.py" $file
  • 放在 for 在您的脚本中循环,并在每个文件之间重置会话。
© www.soinside.com 2019 - 2024. All rights reserved.