如何提取一个目录下所有文件中的关键词内容

**

如何提取一个目录下所有文件中的关键词内容

**
示例代码

import fnmatch
import json
import csv
import os


#color
import colorama
from colorama import init,Fore,Back,Style
init(autoreset=True)

PROC_DIR= 'C:\\Wi-FiTestSuite\\bin\\log'
outputcsv=PROC_DIR + '\\result.csv'
RED='\033[1;31;40m'
GREEN='\033[1;32;40m'
COLOR_END='\033[0m'

print('\n')

try:
    os.remove(outputcsv)
except OSError:
    pass

def search_files(dir, pattern):
    matches = []
    #print(dir)
    for root, dir, files in os.walk(dir):
        #print('root:',root ,'***')
        #print('dir:' ,dir ,'***')
        #print('files:' ,files , '***')
        for file in fnmatch.filter(files, pattern):
            matches.append(os.path.join(root, file))
    return matches

search_result_old = search_files(PROC_DIR, '*.json')
search_result = sorted(search_result_old, key=lambda file: os.path.getctime(file))
#print(search_result)
for file in search_result:
    with open(file, 'r', encoding='utf-8') as f:
        data = json.load(f)
        if data['TmsTestResult']['TestResult']['Result'] == 'PASS':
            with open(outputcsv, 'a', newline='') as fcsv:
                writer = csv.writer(fcsv)
                writer.writerow([file.ljust(20),data['TmsTestResult']['TimeStamp'],data['TmsTestResult']['TestCaseId'], data['TmsTestResult']['TestResult']['Message'], 'PASS'])
                print(data['TmsTestResult']['TimeStamp'].ljust(27),data['TmsTestResult']['TestCaseId'].ljust(25), GREEN + '[PASS]', data['TmsTestResult']['TestResult']['Message'])
        else:
            with open(outputcsv, 'a', newline='') as fcsv:
                writer = csv.writer(fcsv)
                writer.writerow([file.ljust(20), data['TmsTestResult']['TimeStamp'],data['TmsTestResult']['TestCaseId'], data['TmsTestResult']['TestResult']['Message'], 'FAIL'])
                print(RED + data['TmsTestResult']['TimeStamp'].ljust(27),RED + data['TmsTestResult']['TestCaseId'].ljust(25), RED + '[FAIL]', RED + data['TmsTestResult']['TestResult']['Message'])
print('\n')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值