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


Posted in Python onJuly 31, 2014

本文所述实例为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()

Python 相关文章推荐
python脚本实现xls(xlsx)转成csv
Apr 10 Python
Python 实现链表实例代码
Apr 07 Python
pycharm安装图文教程
May 02 Python
Python常见工厂函数用法示例
Mar 21 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
python画图把时间作为横坐标的方法
Jul 07 Python
python 模拟银行转账功能过程详解
Aug 06 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
django创建超级用户过程解析
Sep 18 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
python使用dlib进行人脸检测和关键点的示例
Dec 05 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
Python中lambda的用法及其与def的区别解析
Jul 28 #Python
python代码制作configure文件示例
Jul 28 #Python
You might like
DedeCms模板安装/制作概述
2007/03/11 PHP
PHP详细彻底学习Smarty
2008/03/27 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
python自定义线程池控制线程数量的示例
2019/02/22 Python
django url到views参数传递的实例
2019/07/19 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
Python @property原理解析和用法实例
2020/02/11 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
员工激励培训演讲稿
2014/09/16 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
欠条范文
2015/07/03 职场文书
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers