Python实现文件操作帮助类的示例代码
作者:牛奶咖啡13 发布时间:2023-02-14 16:46:57
标签:Python,文件,操作
一、业务需求
在使用Python进行业务开发的时候,需要将一些数据保存到本地文件存储,方便后面进行数据分析展示。
二、需求分析
通过查看需求可得出:需要将数据存储为本地文件(这就是涉及到文件的操作),文件操作属于基础内容,可以直接将常用的文件操作封装为一个文件,后面使用直接调用即可。
三、实现方法
3.1、Python文件帮助类
#文件操作
import pickle
#读取文件的所有内容(返回字符串)
def ReadFileAllInfoAsStr(filePathAndName):
try:
with open(filePathAndName) as fileObj:
fileInfos=fileObj.read()
except FileNotFoundError:
msg="很抱歉,文件【"+filePathAndName+"】不存在"
print(msg)
else:
return fileInfos
#读取文件的所有内容(返回列表)
def ReadFileAllInfoAsList(filePathAndName):
try:
with open(filePathAndName) as fileObj:
fileInfos=fileObj.readlines()
except FileNotFoundError:
msg="很抱歉,文件【"+filePathAndName+"】不存在"
print(msg)
else:
return fileInfos
#写入信息到文件(覆盖原有内容)
def WriteInfo(needWriteInfo,filePathAndName):
try:
with open(filePathAndName,'wb') as fileObj:
tmpBytes = bytes(needWriteInfo,'utf8')
fileObj.write(tmpBytes)
except Exception as e:
print(e)
#追加信息到文件中
def AppedInfo(needWriteInfo,filePathAndName):
try:
with open(filePathAndName,'ab') as fileObj:
tmpBytes = bytes('\n'+needWriteInfo,'utf8')
fileObj.write(tmpBytes)
except Exception as e:
print(e)
#写入对象到文件
def WriteObj(needWriteInfo,filePathAndName):
try:
with open(filePathAndName,'wb') as fileObj:
pickle.dump(needWriteInfo,fileObj)
except Exception as e:
print(e)
#读取文件内容
def ReadObj(filePathAndName):
try:
with open(filePathAndName,'rb') as fileObj:
tmpObj = pickle.load(fileObj)
except Exception as e:
print(e)
else:
return tmpObj
import json
import codecs
#写入信息为json文件
def WritInfoAsJson(needWriteInfo,filePathAndName):
try:
with codecs.open(filePathAndName,'wb',encoding='utf-8') as fileObj:
json.dump(needWriteInfo,fileObj)
except Exception as e:
print(e)
#读取json文件信息
def ReadInfoToJson(filePathAndName):
try:
with codecs.open(filePathAndName,'rb',encoding='utf-8') as fileObj:
tmpJson=json.load(fileObj)
except Exception as e:
print(e)
else:
return tmpJson
3.2、Python文件帮助类的使用示例
import FileOPC
print('\n写入信息到文件中')
filePathAndName2='file/test.txt'
tmpstr="测试写入内容abcdefg"
FileOPC.WriteInfo(tmpstr,filePathAndName2)
print('\n将字符串转为字节1')
tmpbytes1=str.encode('测试写入内容','utf-8')
print(tmpbytes1)
print('\n将字符串转为字节2')
tmpbytes2=bytes('测试写入内容','utf-8')
print(tmpbytes2)
print('\n追加信息到文件中')
FileOPC.AppedInfo('追加信息123',filePathAndName2)
FileOPC.AppedInfo('测试追加信息456',filePathAndName2)
print('\n切分字符串')
splitStr="Alice in wonderlan 切割字符串,1,2,3,45,6"
tmpSplit = splitStr.split(',')
print(tmpSplit)
print('\n写入对象信息到文件')
filePathAndName3='file/test2.txt'
FileOPC.WriteObj('测试写入对象信息112254799abcadshofdsaujfoduasfoj',filePathAndName3)
print('\n读取文件对象')
tmpObj = FileOPC.ReadObj(filePathAndName3)
print(tmpObj)
import json
print('\n写入信息保存为Json文件')
filePathAndName4='file/testJson.json'
jsonDatas={"101001":[1,3,5,7,9],"101009":["张三","李四",'王五']}
#jsonDatas=[2,3,5,7,11,13]
FileOPC.WritInfoAsJson(jsonDatas,filePathAndName4)
print('\n读取Json文件信息')
tmpJson=FileOPC.ReadInfoToJson(filePathAndName4)
print(tmpJson)
3.3、示例执行结果
来源:https://blog.csdn.net/xiaochenXIHUA/article/details/129547910
0
投稿
猜你喜欢
- 猜测下面这段程序的输出:class A(object): def __init__(self):
- inspect模块用于收集python对象的信息,可以获取类或函数的参数的信息,源码,解析堆栈,对对象进行类型检查等等,有几个好用的方法:D
- 蚁群算法简介蚁群算法(Ant Clony Optimization, ACO)是一种群智能算法,它是由一群无智能或有轻微智能的个体(Agen
- __new__: 对象的创建,是一个静态方法,第一个参数是cls。(想想也是,不可能是self,对象还没创建,哪来的self)__init_
- import matplotlib.pyplot as plt #plt用于显示图片import matplotlib.image as m
- 本文实例讲述了python实现的DES加密算法和3DES加密算法。分享给大家供大家参考。具体实现方法如下:#################
- 在前面的博文中,我们介绍了如何通过软件模拟实现共享磁盘(https://www.jb51.net/network/592807.html),
- 安装源pip install django2.2pip install mysqlclient1.4.6使用pyharm 创建django
- 译者的话:寡妇、孤儿、捧打鸳鸯,这些场面足以让你有想哭的冲动,但当你在排版设计时,同样会碰到这些问题,甚至可能更槽。虽说今天的页面排版软件可
- 转换工具层出不穷,ffmpeg才是全能的转换工具,只是不支持图形操作。没有关系,命令行方式,在freebsd/linux下直接来我们的思路是
- Vue3-KeepAlive,多个页面使用keepaliveVue3的生命周期未添加keepAlive的生命周期beforeCreate=&
- 说明:复制表(只复制结构,源表名:a 新表名:b) select * into b from a where 1<>1说明:拷贝
- 最近有网友在留言板里问到jRaiser和jQuery的冲突问题,特此写一篇文章进行解释。冲突的根源众所周知,jQuery是通过一个全局变量$
- 容器与可迭代对象在正式开始前先补充一些基本概念在 Python 中存在容器 与 可迭代对象容器:用来存储多个元素的数据结构,例如 列表,元组
- Windows环境下python的安装与使用一、python如何运行程序首先说一下python解释器,它是一种让其他程序运行起来的程序。当你
- 问题背景周一上班,首先向同事了解了一下上周的测试情况,被告知在多实例场景下 MySQL Server hang 住,无法测试下去,原生版本不
- 本文讲述了提高代码可读性的十大注释技巧。分享给大家供大家参考,具体如下:很多程序员在写代码的时候往往都不注意代码的可读性,让别人在阅读代码时
- 目录一 列表二 集合三 字典总结一 列表# 列表:包含0个或多个对象引用的有序队列,用中括号[]表示# 增加 a = [] a.append
- 一、前期准备(windows7+mysql-8.0.18-winx64)1.下载地址:https://dev.mysql.com/downl
- 在很多应用程序开发中,需要记录某些数据表的历史记录或修改痕迹,以便日后出现数据错误时进行数据排查。这种业务需求,我们可以通过数据库的触发器来