使用参数从终端运行 Jython 脚本

2023-12-25

我想从命令行调用 Jython 脚本,例如$ /Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --headless little_jython_script.py

我了解 Python(以及 Jython)通过以下方式获取参数的能力

import sys
params = sys.argv[1:]

然后用类似的东西调用脚本$ /Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --headless jython_script_with_params.py param1 param2 param3.

然而,根据 ImageJ 网页http://imagej.net/Script_parameters http://imagej.net/Script_parameters还可以在 Jython 中对参数的使用进行编码,类似于该网站的 Greeting.py 示例

# @String name

# A Jython script with parameters.
# It is the duty of the scripting framework to harvest
# the 'name' parameter from the user, and then display
# the 'greeting' output parameter, based on its type.

print "Hello, " + name + "!" 

问题是:如何指定参数name在命令行调用中$/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --headless Helloworld.py ?


参数的可用方式取决于调用命令,区别在于附加标志--ij2 and --run以 Jython 方式。任何一个sys.argv or # @String等工作,但不能同时工作

1. 使用 sys.argv 的经典 Python 方式

$/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --headless JythonScript.py param1 param2

收获参数JythonScript.py以经典的Python方式sys.argv , i.e.

# @String param1     ### Does NOT work

import sys
program_name = sys.argv[0]
paramvalue1  = sys.argv[1]
paramvalue2  = sys.argv[2]

2. Jython 特定方式使用 # @String 等。

$/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --ij2 --headless --run JythonScript_2.py 'param1=value, param2=value'

以 Jython 方式获取参数

# @String param1     
# @Long param2

### See http://imagej.net/Script_parameters#Parameter_types 
### for a complete list of parameter types

import sys
check = sys.argv   
#here check is a length 1 list containing en empty string: check ==['']

注意两个逗号分隔的引号param=value对。单引号和双引号都有效。当仅存在 1 个参数时可以省略它们。对于字符串参数,请确保将它们括在其他类型的引号中,或者当字符串是纯字母数字时省略引号,例如$/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --ij2 --headless --run JythonScript_3.py 'stringparam1="string with ',' and space ", stringparam2=abc123'

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用参数从终端运行 Jython 脚本 的相关文章

随机推荐

  • 除了 Google App Engine 之外还有 Python 云托管吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 等待进程结束异步,然后调用主窗体中的函数

    我正在用 C 编写一个游戏编辑器 我的程序通过启动 notepad exe 进程以 txt 文件打开 如果该进程退出 我想调用主窗体中的函数 以更新文本框 这是我到目前为止正在做的事情 void OpenTextEditor TreeNod
  • 从大表读取时出现 java.lang.OutOfMemoryError

    我正在尝试从 PostgreSQL 中的一个非常大的表 300GB 预先生成报告 我做了这样的事情 rs stmt executeQuery SELECT FROM tbl System out println select all fin
  • jQuery 的 jquery-1.10.2.min.map 正在触发 404(未找到)

    我看到有关文件的错误消息 min map 未找到 GET jQuery 的 jquery 1 10 2 min map 正在触发 404 未找到 截屏 这是从哪里来的 如果 Chrome DevTools 报告 map 文件的 404 可能
  • 循环比较宏

    我已经使用 Word 完成了一个文本比较宏 我需要循环它 以便它可以在几组文档之间进行比较 关于如何做到这一点有什么想法吗 这是我的代码 Dim template1 As Word Document Dim spool1 As Word D
  • Sqlalchemy:查询多态类的 m2m 关系

    我有两个通过多对多关系连接的类 Parent and Tag Base declarative base association table Table associations Base metadata Column parent id
  • Proguard 在不混淆的情况下进行收缩和优化

    在我的应用程序中 我有库项目依赖项 其中包含许多未使用的方法字段和类 由于这是一个第三方库 我不想自己删除所有未使用的类和方法 因为它是未来的更新 我正在尝试为此使用混淆器 但是 dontobfuscate 只会将整个项目排除在任何优化 缩
  • PHP 编译器 xdebug 警告

    PHP 新手 从事 PHP 项目并启用 xdebug 以便能够调试我的 PHP 应用程序 生产服务器没有启用 xdebug 因为它是由另一个团队处理的 在我的本地计算机上 当我运行 Composer 时 它会给我一个警告 You are r
  • 当只有一个子项可用时,最后一个子项样式会覆盖第一个子项样式

    ul li first child a border radius 5px 5px 0 0 ul li last child a border radius 0 0 5px 5px 当只有一个子项时 最后一个子项样式将覆盖第一个子项样式 有
  • Mysql 容器无法在 Kubernetes 上启动

    我正在使用this https hub docker com layers bitnami mysql 5 7 images sha256 87d11d41343c5404073f13b555e2849db4cb975f10e9b84ff4
  • pcntl_fork 在 PHP 中如何工作?

    我很困惑pcntl fork http php net pcntl fork in PHP 我认为它具有多线程功能 但它是如何工作的以及如何在脚本中使用它 PCNTL 不能创建线程 它仅 分叉 当前的 PHP 进程 这是什么意思 你打电话时
  • 无需更改 .NET 中的代码即可启用 TLS 1.2

    我有 NET 4 5 2 应用程序正在使用SmtpClient发送电子邮件 该应用程序安装在Windows 2012 R2服务器上 当我禁用 TLS 1 和 TLS 1 1 并仅启用 TLS 1 2 时 应用程序停止发送邮件 我认为这是因为
  • Android ViewPager 页面片段之间的填充/边距

    Android Market Google Music 似乎能够在包含在其中的不同片段之间存在某种间隙 ViewPager 知道这是如何做到的吗 向实际片段视图添加边距 填充不起作用 因为视图仍然需要占据屏幕的整个宽度 间隙 仅在滑动 Vi
  • 有某种方法可以禁用 Angular 2 中的一组输入吗?

    我在 md card 中有一些输入 有一种方法可以这样做
  • Bison/Yacc 语法中的无意串联

    我正在尝试 lex 和 yacc 并遇到了一个奇怪的问题 但我认为最好在详细说明问题之前向您展示我的代码 这是我的词法分析器 include
  • 如何有效地将阵列旋转±180°?

    对于 C 语言和衍生物 Python Cython 纯 C 使用最少的内存和操作将非方形 M N 数组绕其中心旋转 180 的最佳算法是什么 假设out是一个初始化的副本array M and N它们的行数和列数 我们使用从 0 到 M 1
  • Javascript 从 toLocaleDateString 解析日期以获取已知区域设置

    背景 在我的应用程序中 我想根据用户的区域设置设置日期格式 如果用户修改日期 我希望能够将其解析回 javascript Date 对象 Problem 我想知道是否可以使用 javascript 从本地格式化的字符串中解析日期 请考虑以下
  • PST 到 CSV 文件转换

    有谁知道通过命令行将 pst 转换为 csv 文件的好工具 您可以假设计算机上安装了 Outlook 吗 如果是这样 我相信它可以使用 OLE 或类似的东西进行后台脚本编写 我已经使用 Ruby 通过 Excel 完成了文件转换 这是一个P
  • 有没有办法将 SharedPreferences 存储到 SD 卡上?

    我编写了一个具有多个硬编码设置 例如 fontSize 或 targetDirectory 的应用程序 我希望能够偶尔更改这些类型的设置 SharedPreferences 似乎是解决此问题的一种方法 但我想共享此应用程序和设置 并且我的手
  • 使用参数从终端运行 Jython 脚本

    我想从命令行调用 Jython 脚本 例如 Applications Fiji app Contents MacOS ImageJ macosx headless little jython script py 我了解 Python 以及