python处理txt文件_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("\t\t\t\t"+writeStr3+"\n")

elif s.find(findStr4) != -1:

outFileIns.write(s)

outFileIns.write("\t\t\t\t\t"+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("\t\t\tAND A.LONGITUDE IS NOT NULL\n\t\t\tAND A.LONGITUDE IS NOT NULL\n\t\t\tAND ROWNUM<2\n")

elif s.find(") LOOP") != -1:

outFileIns.write("\t\t) LOOP\n")

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"

for tmpFile in 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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值