shell 将grep bash命令转换为Python脚本

dluptydi  于 2023-01-21  发布在  Shell
关注(0)|答案(1)|浏览(159)

有一个bash命令,我正在尝试将逻辑转换成python。但是我不知道该怎么做,我需要一些帮助。
bash命令如下所示:

ls
ls *
TODAY=`date +%Y-%m-%d`
cd xx/xx/autotests/
grep -R "TEST_F(" | sed s/"TEST_F("/"#"/g | cut -f2 -d "#" | while read LINE

逻辑是在一个目录中,一个接一个地读取文件名,包括所有的子文件夹,然后列出文件匹配。
我尝试了类似下面这样的东西,但这不是我想要的。里面有一些子文件夹,代码没有阅读其中的文件

import fnmatch
import os
from datetime import datetime

time = datetime.now()

dir_path = "/xx/xx/autotests"
dirs = os.listdir(dir_path)
TODAY = time.strftime("%Y-%m-%d")

filesOfDirectory = os.listdir(dir_path)
print(filesOfDirectory)
pattern = "TEST_F("
for file in filesOfDirectory:
    if fnmatch.fnmatch(file, pattern):
        print(file)
olhwl3o2

olhwl3o21#

使用os.walk()递归扫描目录。
打开每个文件,遍历文件中包含"TEST_F("的行,然后提取后面的行(sedcut就是这么做的)。

for root, dirs, files in os.walk(dir_path):
    for file in files:
        with open(os.path.join(root, file)) as f:
            for line in f:
                if "TEST_F(" in line:
                    data = line.split("TEST_F(")[1]
                    print(data)

相关问题