python实现简单文件读写函数

 更新时间:2021年02月25日 17:23:22   作者:李子园的梦想  
这篇文章主要为大家详细介绍了python实现简单文件读写函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

python作为脚本性语言,加上它的简便易用性。会经常当作脚本用来处理一下数据和格式。其中处理文件就是频繁用处之一。简单编写几个常用的xls和txt读写函数,以后可以快速复用。

用到xlrd库函数需要预先install

命令:pip install xlrd

直接贴源码:

#! /usr/bin/python
# coding:utf-8
 
import json
import xlrd
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
 
class ObjectFileReadAndWrite(object):
 
 @classmethod
 def readXlsToDict(cls, xlsFile):
 '''
 读取xls文件生成dict
 '''
 data = xlrd.open_workbook(xlsFile)
 table = data.sheet_by_index(0)
 ret = []
 keys = table.row_values(0)
 for rowNum in range(table.nrows):
 oneRowValues = table.row_values(rowNum)
 if rowNum > 0:
 d = {}
 for colIdx, key in enumerate(keys):
 d[key] = oneRowValues[colIdx]
 ret.append(d)
 return ret
 
 @classmethod
 def readXlsToList(cls, xlsFile):
 '''
 读取xls文件生成list
 '''
 data = xlrd.open_workbook(xlsFile)
 table = data.sheet_by_index(0)
 ret = []
 for rowNum in range(table.nrows):
 oneRowValues = table.row_values(rowNum)
 ret.append(oneRowValues)
 return ret
 
 @classmethod
 def readTxt(cls, txtFile, sep):
 '''
 读取txt文件
 '''
 # with + open 可保证with语句执行完毕后同时关闭打开的文件句柄。
 ret = []
 with open(txtFile, "r") as f:
 for line in f.readlines():
 line = line.strip('\n') # 去掉换行符
 listInfo = line.split(sep) # 以 sep 分割成数组
 if listInfo:
 ret.append(listInfo)
 return ret
 
 @classmethod
 def writeToJson(cls, jsonFile, ret):
 '''
 写入json文件
 '''
 with open(jsonFile, 'w') as fp:
 json.dump(ret, fp, indent=2, sort_keys=True, encoding="utf-8", ensure_ascii=False)
 
 @classmethod
 def writeFromStr(cls, filePath, s):
 '''
 string写入文件
 '''
 with open(filePath, 'w') as fp:
 fp.write(s)
 
 @classmethod
 def writeFromList(cls, filePath, wList):
 '''
 list写入文件
 '''
 with open(filePath, 'w') as fp:
 fp.writelines(wList)
 
 
if __name__ == "__main__":
 obj = ObjectFileReadAndWrite()
 # xls
 ret = obj.readXlsToDict(xlsFile='xxx.xls')
 obj.writeToJson('xxx.json', ret)
 # txt
 ret2 = obj.readTxt(txtFile='result.txt', sep=" ")
 obj.writeToJson('result.json', ret2)

因文件中有中文,中间遇到中文乱码问题

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
 
# encoding="utf-8", ensure_ascii=False

1、这个是由于Unicode编码与ASCII编码的不兼容造成的。
2、通常都是ascii,由此Python自然调用ascii编码解码程序去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128))

百度了下通过 以上方式 解决了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Scala中使用Jsoup库处理HTML文档的案例分析

    Scala中使用Jsoup库处理HTML文档的案例分析

    Scala是一种多范式的编程语言,具有函数式编程和面向对象编程的特点,同时也能够与Java语言完美兼容,它拥有强大的类型推断、高阶函数、模式匹配等特性,使得代码更加简洁、灵活和易于维护,这篇文章主要介绍了Scala中使用Jsoup库处理HTML文档的案例分析,需要的朋友可以参考下
    2024-04-04
  • python调用staf自动化框架的方法

    python调用staf自动化框架的方法

    今天小编就为大家分享一篇python调用staf自动化框架的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python常用扩展插件使用教程解析

    Python常用扩展插件使用教程解析

    这篇文章主要介绍了Python常用扩展插件使用教程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 关于PyQt5中QtGui.QImage图片显示问题解析

    关于PyQt5中QtGui.QImage图片显示问题解析

    PyQt作为Qt语言的Python扩展,可以用来方便快速的开发界面应用,本文重点给大家介绍PyQt5中的QtGui.QImage图片显示问题分析,需要的朋友可以参考下
    2022-03-03
  • python绘制分组对比柱状图

    python绘制分组对比柱状图

    这篇文章主要为大家详细介绍了python绘制分组对比柱状图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Pycharm 2020最新永久激活码(附最新激活码和插件)

    Pycharm 2020最新永久激活码(附最新激活码和插件)

    最近很多朋友的Pycharm激活时间又过期了,今天小编再把激活的方法汇总和工具分享一下,文中给大家分享两种方式,需要的朋友直接拿去用吧
    2020-01-01
  • flask操作数据库相关配置及实现示例步骤全解

    flask操作数据库相关配置及实现示例步骤全解

    这篇文章主要介绍了flask操作数据库相关配置及实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python实现堆排序的方法详解

    Python实现堆排序的方法详解

    这篇文章主要介绍了Python实现堆排序的方法,结合实例形式详细分析了堆排序的原理,实现方法与相关注意事项,需要的朋友可以参考下
    2016-05-05
  • Python3使用requests登录人人影视网站的方法

    Python3使用requests登录人人影视网站的方法

    通过本文给大家介绍python代码实现使用requests登录网站的过程。非常具有参考价值,感兴趣的朋友一起学习吧
    2016-05-05
  • Python 图像处理 Pillow 库详情

    Python 图像处理 Pillow 库详情

    这篇文章主要介绍了Python 图像处理 Pillow 库,图像处理是常用的技术,python 拥有丰富的第三方扩展库,Pillow 是 Python3 最常用的图像处理库,目前最高版本5.2.0。Python2 使用Pil库,两者是使用方法差不多,区别在于类的引用不同。下面来看看文章的详细内容
    2021-11-11

最新评论