我有以下文本文件job.txt
。我想extract
像48638
(没有单词cluster),时间字段,Q
这样的一些字段在每一行进入一个列表。你知道吗
请引导我,我试过这些:
content = [x.strip('\n') for x in content]
stlist=content[2:]
删除前两行,但无法得到如下输出。你知道吗
列表的输出必须如下所示:
48758 45:00:40 R qp32
job.txt-is
如下:
Job id Name User Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
48638.tyrone-cluster ...01R-1850-01_2 mcbkss 0 Q qp32
48738.tyrone-cluster case3sqTS1e-4 mecvamsi 588:30:5 R qp32
48758.tyrone-cluster meshA5 mecmdjim 45:00:40 R qp32
你知道吗编辑:以上文件也可以是这样的其他格式 不带空格的文件文本如下在下面原始文件由类似上述代码的空格组成。你知道吗
Job id Name User Time Use S Queue
------------------------- ---------------- --------------- -------- - ----
48998.tyrone-cluster gic1_nwgs mbupi 18:45:44 R qp32
48999.tyrone-cluster gic2_nwgs mbupi 0 Q batch
49005.tyrone-cluster ...01R-1849-01_2 mcbkss 00:44:23 R qp32
8687.tyrone-cluster gaussian_top.sh chemraja 0 Q qp32
49047.tyrone-cluster jet_egrid asevelt 312:33:0 R qp128
49052.tyrone-cluster case3sqTS1e-4 mecvamsi 0 Q qp32
49053.tyrone-cluster ...01R-1850-01_1 mcbkss 0 Q batch
49054.tyrone-cluster ...01R-1850-01_2 mcbkss 0 Q batch
所以每次格式改变时,任何人都可以帮助我得到一个通用函数来处理文件中所有这些不同的类型。你知道吗
可以用正则表达式解析这些行。 对于要显示的字段,可以将它们放在捕获组中,方法是将正则表达式的相关部分用括号括起来。 您可以使用regex匹配结果上的group()方法提取这些捕获组。你知道吗
您提供的数据:
脚本对上述数据的输出(包括第2列中的newly request time字段):
分析后的数据可在作业列表列表变量中找到。你知道吗
Regex在这里有点过分了,可以使用字符串拆分来代替,并使用
islice
忽略前两行。把所有的词都从这些词中提取到第一个.
,然后从剩下的词中提取最后两个词,例如:相关问题 更多 >
编程相关推荐