条件命令行参数[可能使用getopt()??]

2024-05-15 13:47:52 发布

您现在位置:Python中文网/ 问答频道 /正文

这与我之前的文章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在四月提交的作业记录,并且只想打印作业id、作业开始日期和用户名按照他提到的顺序。因此,一个可能的命令是:

torque_history.py -c 'm == "4" && RealUser == "Maarten Lapka"' -f 'JobId && ExecHost && StartDate'

其中-c--constraint的缩写,-f表示{}或其他任何东西。有人能给我一些建议吗?是否可以使用getopt()?在

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

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


Tags: 用户pydate作业记录historyabcexpress
1条回答
网友
1楼 · 发布于 2024-05-15 13:47:52

optparse是纯Python,因此如果需要,我会忘记getopt()并将其放入您的应用程序中。在

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

别忘了创建external/__init__.py。在

相关问题 更多 >