**
如何提取一个目录下所有文件中的关键词内容
**
示例代码
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')