運用python提取文本信息實戰-rdoq time matching

RDOQ Time Matching 實戰:
目標:提取rdoq的運行時間。
工程中rdoq運行時間用全局變量統計,編碼結束後獲得rdoq總的運行時間。
原始做法是將該變量全部連續的寫到一個文件裏,每次手動填表
python 批處理 結合的嘗試 還未完全理解

但是將runtime寫到屏幕上,->轉入log文件中,直接對log文件的信息做匹配提取,效果也是一樣的佳。
要解決的問題:
1、匹配,好簡單
2、遍歷一個文件夾中的所有文件再做匹配

重點解決的是第二個

pathDir = os.listdir('C:/Users/wangm/Desktop/Bat/RA/log')

將路徑下的所有的文件名當作字符串,寫在了pathDir中,他是一個list
接下來的操作就可以按照粗暴的list循環的方式做

for filename in pathDir:
        c = ''
        c = 'C:/Users/wangm/Desktop/Bat/RA/log/' + filename
        file_object  = open(c, 'r')
        print(file_object)

        while 1:
            chunk = file_object.readline()
            if chunk == '':
                break
            matchTime = 'RdoqTime'
            time = matching(chunk, matchTime, [1])
            if time:
                write_time(time, filename, "0.00")

                print(time)
                break

另一種結局方式是,爲了保證每次讀取文件數據的順序,可以先按照表格順序建表~
c變量的構成還是粗爆的。

f_out = open('C:/Users/wangm/Desktop/Bat/RA/rdoq.txt', 'w+') 
import re
import string
import os

def matching(chunk, matchsyntax, index):
    if re.match(matchsyntax, chunk):
        splitWord = re.split(r'\s+', chunk)
        matchWord = []
        for i in index:
            matchWord.append(splitWord[i])
        return matchWord

def write_time(time, filename, incline):
    f_out.write("%-10s"%(time[0]))
    f_out.write(" ")
    f_out.write("%40s"%(filename))
    f_out.write("  ")
    f_out.write(incline)
    f_out.write("\n")
try:
    pathDir = os.listdir('C:/Users/wangm/Desktop/Bat/RA/log')
    write_time(["Time"], "FileName", "0.00")#Tag
    for filename in pathDir:
        c = ''
        c = 'C:/Users/wangm/Desktop/Bat/RA/log/' + filename
        file_object  = open(c, 'r')
        print(file_object)

        while 1:
            chunk = file_object.readline()
            if chunk == '':
                break
            matchTime = 'RdoqTime'
            time = matching(chunk, matchTime, [1])
            if time:
                write_time(time, filename, "0.00")

                print(time)
                break
finally:
    file_object.close()
    f_out.close() 


在文本輸出格式方面,對其什麼的爲了方便複製粘貼還是有講究的
f_out.write("%-10s"%(time[0]))
帶格式的寫文件

發佈了1 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章