我是新使用python的,问题是我不知道从哪里开始可以解决下面的问题
我有三个文件
1文件包含如下内容:
pm_rpm@fences
pm_rpm@fences-dpms
pm_rpm@modeset-lpsp-stress
pm_rpm@modeset-non-lpsp-stress
pm_rpm@modeset-lpsp-stress-no-wait
pm_rpm@modeset-non-lpsp-stress-no-wait
pm_rpm@modeset-pc8-residency-stress
pm_rpm@modeset-stress-extra-wait
pm_rpm@system-suspend
pm_rpm@system-suspend-execbuf
pm_rpm@system-suspend-modeset
这个1文件包含我将运行的所有测试
第二个文件如下所示:
kms_vblank@accuracy
kms_vblank@query-idle
kms_vblank@query-busy
kms_vblank
第三个文件如下所示:
kms_flip@2x-rcs-wf_vblank-vs-modeset
kms_flip@basic-plain-flip
kms_flip@2x-plain-flip
kms_flip@busy-flip
kms_flip@2x-busy-flip
所以基本上我需要检查文件2和文件3中有多少测试在文件1中,并得到如下输出
file 2 : 3 tests found
file 3 : 10 tests found
但例如,如果在文件2或文件3中的任何一个文件中,我有一个通配符测试,如下所示:
gem\U并发*
我需要python脚本与通配符一起工作
非常感谢你在这方面的帮助
我用Python3编写了这些程序,第一个只包括'@'符号后面的测试,第二个包括整个测试名称:
第二个程序:
通过我所做的测试,它们似乎都可以工作,并且也支持通配符,但是如果其中任何一个有问题,请给出注释。你知道吗
希望这有帮助。你知道吗
使用python2.7有一个非常愚蠢的解决方案:
它首先将整个文件读入三个列表,然后在两个列表对上调用
findCommon
函数。你知道吗findCommon
函数遍历第二个列表(文件)并检查测试名是否包含通配符(当然这假设只有两个通配符?和*,这可能是错误的)。如果是这样,它将在第一个文件上使用regex匹配,否则将使用简单的等式来查找匹配项。set
用于删除重复的匹配项。你知道吗相关问题 更多 >
编程相关推荐