python - 无法将变量传递给 Paraview 脚本
问题描述
我有以下 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']
,但没有任何效果。
解决方案
ParaView 不会将参数转发给脚本。未知的命令行参数被解释为要在 ParaView 中打开的文件。
根据您想要做什么,您应该:
- 使用 pvpython 可执行文件而不是 paraview 之一(如果您不需要自己使用 GUI)
"C:\\Program Files\\ParaView 4.4.0\\bin\\pvpython.exe" "C:\\folder\\inside\\my_stuff\\screens2.py" $file
- 将
for
循环放在脚本中并重置每个文件之间的会话
推荐阅读
- dialogflow-es - 如何在 Google Assistant 上部署我的聊天机器人模型?
- node.js - 我遗漏了一些关于 .env 的内容,你能给我解释一下吗?
- python - 如何使用 Numpy / Keras 将加载图像的填充部分归零?
- xaml - TitleView 没有覆盖整个工具栏
- amazon-web-services - 如何在 Docker 容器中创建 DynamoDB(本地)表
- django - 字段在 Django DRF 中的 OneToOne 字段上必须是唯一的
- java - 将 Javalin 与 SSL 一起使用
- azure - 如何修复 MPI_ERR_RMA_SHARED?
- c++ - Concept to check for variadic template function
- python - Python 3 中的条形图编码问题