Python实现的tab文件操作类分享


Posted in Python onNovember 20, 2014

类代码:

# -*- coding:gbk -*-

import os

class TABFILE:
  def __init__(self, filename, dest_file = None):
    self.filename = filename
    if not dest_file:
      self.dest_file = filename
    else:
      self.dest_file = dest_file
    self.filehandle = None
    self.content = []
    self.initflag = False
    self.column = 0
    self.row = 0
    self.data = []
  def Init(self):
    try: 
      self.filehandle = open(self.filename, 'r')
      self.initflag = self._load_file()
    except: 
      pass
    else:
      self.initflag = True
    return self.initflag

  def UnInit(self):
    if self.initflag:
      self.filehandle.close()
    
  def _load_file(self):
    if self.filehandle:
      self.content = self.filehandle.readlines()
      self.row = len(self.content) - 1
      head = self.content[0].split('\t')
      self.column = len(head)
      for line in self.content:
        #这里需要去掉末尾的换行
        #line = line - '\n\r'
        self.data.append(line.rstrip().split('\t'))
      return True
    else:
      return False

  def GetValue(self, row, column):
    if 0 < row < self.row and 0 < column < self.column:
      return self.data[row][column - 1]
    else:
      return None

  def SetValue(self, row, column, value):
    if 0 < row < self.row and 0 < column < self.column:
      self.data[row][column] = value
    else:
      return False

  def SaveToFile(self):
    filewrite = open(self.dest_file, 'w')
    if not filewrite:
      return False
    sep_char = '\t'
    for line in self.data:
      filewrite.write(sep_char.join(line)+'\n')
    filewrite.close()
    return True
Python 相关文章推荐
python urllib爬取百度云连接的实例代码
Jun 19 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
基于Python中单例模式的几种实现方式及优化详解
Jan 09 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
Django实现网页分页功能
Oct 31 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
Feb 21 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
如何实现更换Jupyter Notebook内核Python版本
May 18 Python
Python jieba库分词模式实例用法
Jan 13 Python
基于Python实现流星雨效果的绘制
Mar 18 Python
python微信智能AI机器人实现多种支付方式
Apr 12 Python
Python实现的ini文件操作类分享
Nov 20 #Python
Python中列表、字典、元组、集合数据结构整理
Nov 20 #Python
python有证书的加密解密实现方法
Nov 19 #Python
Python采用socket模拟TCP通讯的实现方法
Nov 19 #Python
Python实现向QQ群成员自动发邮件的方法
Nov 19 #Python
python端口扫描系统实现方法
Nov 19 #Python
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
Nov 19 #Python
You might like
php minixml详解
2008/07/19 PHP
php学习之流程控制实现代码
2011/06/09 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
豆瓣网的jquery代码实例
2008/06/15 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
Javascript学习指南
2014/12/01 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
通过学习bootstrop导航条学会修改bootstrop颜色基调
2017/06/11 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
python进阶教程之循环对象
2014/08/30 Python
Python的subprocess模块总结
2014/11/07 Python
基于python内置函数与匿名函数详解
2018/01/09 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
Python continue语句实例用法
2020/02/06 Python
资产评估专业学生的自我鉴定
2013/11/14 职场文书
《和田的维吾尔》教学反思
2014/04/14 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android