这与我之前的帖子here有关。运行实际脚本,我输出如下结果:
[root@test_vm /]# torque_history.py -m 4
Job Id User Real User Start Date S End Date Exec Host Queue
----------- -------- -------------- -------------- - -------------- ----------- -------
0.vmtest2 dteam001 Kashif M. Raza 18/04 16:53:03 C 18/04 16:53:05 vmtest1.abc express
2.vmtest2 dteam007 Arnau Hahkala 19/04 13:21:19 C 19/04 13:23:26 vmtest3.abc medium
....
....
160.vmtest2 sgmatlas Andrew Lloyd 30/04 15:44:36 C 30/04 15:54:04 node029.abc short
162.vmtest2 sgmops Maarten Lapka 30/04 16:44:36 C 30/04 16:45:48 vmtest1.abc express
---------------------------------
107 records in history (0.04 sec)
如果没有给出选项打印整个记录, -m 4
仅打印4月的记录,依此类推。我希望我的用户能够构建条件查询字符串,例如:m == "4" && RealUser == "Maarten Lapka"
并且还以所需的格式输出他们想要的唯一字段的结果,例如:JobId && StartDate && User
,这意味着用户正在寻找Maarten Lapka在4月份提交的工作记录,并希望按照他提到的顺序仅打印工作ID,工作开始日期和用户名。因此,可能的命令可能是:
torque_history.py -c 'm == "4" && RealUser == "Maarten Lapka"' -f 'JobId && ExecHost && StartDate'
其中-c
是--constraint
的缩写,-f
的短--format
或其他。任何人都可以建议我这样做吗?是否可以使用getopt()
?
我的问题部分是我们使用RHEL5的变体(即SL5,SLC5,CentOS),它们都标配python v2.4,我无法确保每个站点并行运行v2.6。所以,我希望尽可能保持与v2.4的接近,并尽可能使用getopt()
。我的计划是使用shedskin编译python代码并分发c ++文件以最小化兼容性问题。在这种情况下,我可以使用v2.6,但我要使用模块支持,而getopt()就是其中之一。
我很抱歉,如果我让你们很难,但我真的很期待一些帮助和建议。谢谢你的时间。干杯!!!
答案 0 :(得分:1)
optparse
是纯Python,因此如果需要,我会忘记getopt()
并将其拉入您的应用。
try:
import optparse
except ImportError:
import external.optparse as optparse
不要忘记创建external/__init__.py
。