本文所述实例为Python处理文本文件并生成指定格式文件的方法,具体实现功能代码如下所示:
import os
import sys
import string
#以指定模式打开指定文件,获取文件句柄
def getFileIns(filePath,model):
print("打开文件")
print(filePath)
print(model)
return open(filePath,model)
#获取需要处理的文件
def getProcFile(path):
return os.listdir(path)
#判断是否满足某个条件,如果满足则执行
def isTrue(outFileIns,s):
findStr1 = "LINE_COUNT_UPDATE INTEGER := 0;"
writeStr1 = "LINE_COUNT_ERROR INTEGER := 0; --错误数据XX条"
findStr2 = "DBMS_OUTPUT.PUT_LINE('处理完毕"
writeStr2 = "DBMS_OUTPUT.PUT_LINE('错误数据['||LINE_COUNT_ERROR||']条.');"
findStr3 = "DBMS_OUTPUT.PUT_LINE('插入数据['||CUR_RESULT.INT_ID||']时发生异常...');"
writeStr3 = "LINE_COUNT_ERROR := LINE_COUNT_ERROR+1;"
findStr4 = "DBMS_OUTPUT.PUT_LINE('更新数据['||CUR_RESULT.INT_ID||']时发生异常...');"
if s.find(findStr1) != -1:
outFileIns.write(s)
outFileIns.write(writeStr1+"n")
elif s.find(findStr2) != -1:
outFileIns.write(s)
outFileIns.write(writeStr2+"n")
elif s.find(findStr3) != -1:
outFileIns.write(s)
outFileIns.write("tttt"+writeStr3+"n")
elif s.find(findStr4) != -1:
outFileIns.write(s)
outFileIns.write("ttttt"+writeStr3+"n")
elif s.find("CS_OSLGIS") != -1:
outFileIns.write(s.replace("CS_OSLGIS","CQ_RMW"))
elif s.find("AND A.LONGITUDE >") != -1:
outFileIns.write("tttAND A.LONGITUDE IS NOT NULLntttAND A.LONGITUDE IS NOT NULLntttAND ROWNUM<2n") elif="" s.find(")="" loop")="" !="-1:" outfileins.write("tt)="" loopn")="" else:="" outfileins.write(s.replace("||')',2","||')',3"))="" #读取并处理文本="" def="" getandproc(infileins,outfileins):="" lines="inFileIns.readlines()" for="" s="" in="" lines:="" #print(s)="" istrue(outfileins,s)="" if="" __name__="="__main__":" infilemod="r" outfilemod="w" path="D:\rmsdata2gis" tmpfile="" os.listdir(path):="" infilepath="path+"\"+tmpFile" outfilepath="path+"\BAK_"+tmpFile" infileins="getFileIns(inFilePath,inFileMod)" outfileins="getFileIns(outFilePath,outFileMod)" getandproc(infileins,outfileins)="" infileins.close()="" outfileins.close()=""