python处理文本文件并生成指定格式的文件


Posted in Python onJuly 31, 2014
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()
Python 相关文章推荐
使用python实现baidu hi自动登录的代码
Feb 10 Python
pycharm 使用心得(四)显示行号
Jun 05 Python
Python中exit、return、sys.exit()等使用实例和区别
May 28 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
Python饼状图的绘制实例
Jan 15 Python
python的slice notation的特殊用法详解
Dec 27 Python
Python反爬虫伪装浏览器进行爬虫
Feb 28 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 Python
django创建css文件夹的具体方法
Jul 31 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
Nov 24 Python
Python中关键字is与==的区别简述
Jul 31 #Python
python处理文本文件实现生成指定格式文件的方法
Jul 31 #Python
Python中zip()函数用法实例教程
Jul 31 #Python
Python中apply函数的用法实例教程
Jul 31 #Python
python新手经常遇到的17个错误分析
Jul 30 #Python
Python使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 #Python
Python代码的打包与发布详解
Jul 30 #Python
You might like
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
投票管理程序
2006/10/09 PHP
php header Content-Type类型小结
2011/07/03 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
基于Jquery的温度计动画效果
2010/06/18 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python实现自动发送邮件功能
2021/03/02 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
Python yield的用法实例分析
2020/03/06 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
C#的几个面试问题
2016/05/22 面试题
2013年学期结束动员演讲稿
2014/01/07 职场文书
司机职责范本
2014/03/08 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
通用员工手册范本
2015/05/14 职场文书
2019求职信大礼包
2019/05/15 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫