1. 文件路径设定及文件遍历
import os path = 'E:\Python36\testdata' os.chdir(path) os.listdir() for filename in os.listdir(): file = open(filename, 'r') for eachline in file.readlines(): # process eachline
2. 提取glass ID
IDlist = [] file = open('A1770266172.txt', 'r') for line in file.readlines(): if line.startswith('Process'): ID = line[37: ] IDlist.append(ID) print(IDlist)
3. 提取Input/Buffer/Inspection/Printer/UvLevel/Output时间
for line in file.readlines(): if line.startswith('Arrived at Input'): InputIN = line[20:39] elif line.startswith('Departed at Input'): InputOUT = line[18:37] elif line.startswith('Arrived at Buffer'): BufferSLOT = line[17:18] BufferIN = line[22:41] elif line.startswith('Departed at Buffer'): BufferOUT = line[20:39] elif line.startswith('Arrived at Inspection'): InspectionIN = line[25: ] elif line.startswith('Departed at Inspection'): InspectionOUT = line[23:42] elif line.startswith('Arrived at Printer'): PrinterIN = line[22: ] elif line.startswith('Departed at Printer'): PrinterOUT = line[20:39] elif line.startswith('Arrived at UvLevel'): UVSLOT = line[18:19] UVIN = line[23: ] elif line.startswith('Departed at UvLevel'): UVOUT = line[20: ] elif line.startswith('Arrived at Output'): OutputIN = line[21: ] elif line.startswith('Departed at Output'): OutputOUT = line[19:38] else: InputIN = 'NA'
4. 把提取的信息存入文件中
import csv with open('E:\Python36\glass.csv', 'w', newline='') as csvfile: fieldnames1 = ['glass ID', 'input in', 'input out', 'buffer in', 'buffer out', 'aoi in', 'aoi out', 'printer in', 'printer out', 'uv in', 'uv out', 'output in', 'output out', 'buffer slot', 'uv level'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames1) writer.writeheader() for item in list_dict: writer.writerow(item)
5. 整合完整代码
import os path = 'E:\Python36\testdata' os.chdir(path) os.listdir() glass = [] list_dict = [] for filename in os.listdir(): a=b=c=d=e=f=g=h=i=j=k=l=m= 0 file = open(filename, 'r') for line in file.readlines(): if line.startswith('Process'): a = a+1 if a < 2: ID = line[37: -1] glass.append(ID) else: continue elif line.startswith('Arrived at Input'): b = b+1 if b < 2: InputIN = line[20:39] glass.append(InputIN) else: continue elif line.startswith('Departed Input'): c = c +1 if c < 2: InputOUT = line[18:37] glass.append(InputOUT) else: continue elif line.startswith('Arrived at Buffer'): d = d+1 if d <2: BufferSLOT = line[17:18] glass.append(BufferSLOT) BufferIN = line[22:41] glass.append(BufferIN) else: continue elif line.startswith('Departed Buffer'): e = e+1 if e<2: BufferOUT = line[20:39] glass.append(BufferOUT) else: continue elif line.startswith('Arrived at Inspection'): f = f+1 if f <2: InspectionIN = line[25: -1] glass.append(InspectionIN) else: continue elif line.startswith('Departed Inspection'): g = g+1 if g<2: inspectionOUT = line[23:42] glass.append(inspectionOUT) else: continue elif line.startswith('Arrived at Printer'): h =h+1 if h<2: PrinterIN = line[22: -1] glass.append(PrinterIN) else: continue elif line.startswith('Departed Printer'): i = i+1 if i<2: PrinterOUT = line[20:39] glass.append(PrinterOUT) else: continue elif line.startswith('Arrived at UvLevel'): j = j+1 if j<2: UVSLOT = line[18:19] glass.append(UVSLOT) UVIN = line[23: -1] glass.append(UVIN) else: continue elif line.startswith('Departed UvLevel'): k =k+1 if k<2: UVOUT = line[21: -1] glass.append(UVOUT) else: continue elif line.startswith('Arrived at Output'): l = l+1 if l<2: OutputIN = line[21: -1] glass.append(OutputIN) else: continue elif line.startswith('Departed Output'): m = m+1 if m<2: OutputOUT = line[19:38] glass.append(OutputOUT) else: continue dic = {'glass ID':ID, 'input in':InputIN, 'input out':InputOUT, 'buffer slot':BufferSLOT, 'buffer in':BufferIN, 'buffer out':BufferOUT, 'aoi in':InspectionIN, 'aoi out':inspectionOUT, 'printer in':PrinterIN, 'printer out':PrinterOUT, 'uv level':UVSLOT, 'uv in':UVIN, 'uv out':UVOUT, 'output in':OutputIN, 'output out':OutputOUT} #print(dic) list_dict.append(dic) import csv with open('E:\Python36\glass.csv', 'w', newline='') as csvfile: fieldnames1 = ['glass ID', 'input in', 'input out', 'buffer in', 'buffer out', 'aoi in', 'aoi out', 'printer in', 'printer out', 'uv in', 'uv out', 'output in', 'output out', 'buffer slot', 'uv level'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames1) writer.writeheader() for item in list_dict: writer.writerow(item)