0

与我之前的帖子有关。运行实际脚本,我输出如下结果:

[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仅打印四月的记录,如果没有给出选项,则打印整个记录,依此类推。我希望我的用户能够构造条件查询字符串,例如: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'

和for或其他-c的缩写在哪里。任何人都可以建议我这样做吗?可以使用吗?--constraint-f--formatgetopt()

我的部分问题是我们使用 RHEL5 的变体(即 SL5、SLC5、CentOS),它们都以 python v2.4 作为标准,我不能确保每个站点都并行运行 v2.6。所以,我想尽可能地接近 v2.4 并getopt()尽可能使用。我的计划是使用shedskin编译 python 代码并分发 c++ 文件以尽量减少兼容性问题。在这种情况下,我可以使用 v2.6,但我必须使用 shedskin 支持的模块,而 getopt() 就是其中之一。

对不起,如果我让你们很难,但我真的很期待一些帮助和建议。谢谢你的时间。干杯!!!

4

1 回答 1

1

optparsegetopt()是纯 Python,所以如果需要,我会忘记并将其拉入您的应用程序。

try:
  import optparse
except ImportError:
  import external.optparse as optparse

不要忘记创建external/__init__.py.

于 2011-05-14T10:51:26.527 回答