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获得一个月有多少天的方法
Jun 04 Python
python实现FTP服务器服务的方法
Apr 11 Python
Windows环境下python环境安装使用图文教程
Mar 13 Python
对numpy中array和asarray的区别详解
Apr 17 Python
基于pandas数据样本行列选取的方法
Apr 20 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
详解Python中的测试工具
Jun 09 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
Python Process多进程实现过程
Oct 22 Python
Python SSL证书验证问题解决方案
Jan 13 Python
请求模块urllib之PYTHON爬虫的基本使用
Apr 08 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
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
php视频拍照上传头像功能实现代码分享
2015/10/08 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
Jquery插件之多图片异步上传
2010/10/20 Javascript
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
js 性能优化之算法和流程控制
2017/02/15 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
Python中的装饰器用法详解
2015/01/14 Python
Python ftp上传文件
2016/02/13 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
高一家长会邀请函
2014/01/12 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
学校党员干部承诺书
2015/05/04 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
Go语言基础知识点介绍
2021/07/04 Golang