python处理文本文件实现生成指定格式文件的方法

79 篇文章 0 订阅

python处理文本文件实现生成指定格式文件的方法

关于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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值