主页 > 知识库 > python实现简单文件读写函数

python实现简单文件读写函数

热门标签:客户服务 呼叫中心市场需求 Win7旗舰版 企业做大做强 硅谷的囚徒呼叫中心 电话运营中心 百度AI接口 语音系统

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中的异常和文件读写
  • 使用Python文件读写,自定义分隔符(custom delimiter)
  • Python基于codecs模块实现文件读写案例解析
  • python文件处理--文件读写详解

标签:安康 崇左 长沙 山西 济南 山西 喀什 海南

巨人网络通讯声明:本文标题《python实现简单文件读写函数》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266