python实现简单文件读写函数


Posted in Python onFebruary 25, 2021

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))

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

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

Python 相关文章推荐
Python collections模块实例讲解
Apr 07 Python
Python中的闭包详细介绍和实例
Nov 21 Python
在Python中利用Pandas库处理大数据的简单介绍
Apr 07 Python
python optparse模块使用实例
Apr 09 Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 Python
基于python绘制科赫雪花
Jun 22 Python
python flask安装和命令详解
Apr 02 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
Jun 14 Python
keras 多gpu并行运行案例
Jun 10 Python
Python魔术方法专题
Jun 19 Python
Python基础之变量的相关知识总结
Jun 23 Python
Python 数据可视化神器Pyecharts绘制图像练习
Feb 28 Python
python pygame 愤怒的小鸟游戏示例代码
Feb 25 #Python
python网络爬虫实现发送短信验证码的方法
Feb 25 #Python
python openpyxl模块的使用详解
Feb 25 #Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 #Python
python如何实现递归转非递归
Feb 25 #Python
Python如何使用神经网络进行简单文本分类
Feb 25 #Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 #Python
You might like
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
php实现的生成排列算法示例
2019/07/25 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
python入门基础之用户输入与模块初认识
2016/11/14 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
酒店应聘自荐信
2013/11/09 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
小升初自荐信范文
2015/03/05 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python