Невозможно передать переменную в скрипт Paraview - PullRequest
1 голос
/ 29 апреля 2020

У меня есть следующий bash script

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 в * Скрипт 1020 *, чтобы он знал, какой файл открыть.

Начало моего скрипта выглядит так:

#### 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'], но ничего не работает.

1 Ответ

1 голос
/ 30 апреля 2020

ParaView не передает аргументы в скрипт. Неизвестные аргументы командной строки интерпретируются как файл, который открывается в ParaView.

В зависимости от того, что вы хотите сделать, вам следует:

  • использовать исполняемый файл pv python вместо первого. (если вам не нужно использовать GUI самостоятельно)
"C:\\Program Files\\ParaView 4.4.0\\bin\\pvpython.exe" "C:\\folder\\inside\\my_stuff\\screens2.py" $file
  • поместите for l oop в сценарий и сбросьте сеанс между каждым файлом
...