九、文件操作

news/2024/9/25 13:19:42/

一、open函数

python中利用open()函数进行文件的打开和创建操作

f=open(“文件路径”,“访问模式”,“编码方式”)  

中文编码为:encoding=“utf-8” 

例:fp=open(“text.txt”,“w”)

f=open("./text.txt","w")#以写方式打开/创建文件,采用写方式创建
f.write("hahahahhahahhahahah")#f是函数返回值
f.close()#关闭文件

在当前文件夹中创建text.txt文件

二、路径

绝对路径:目标在电脑硬盘上的真实路径(从电脑盘符开始)

例如:D:\新建文件夹\python-stady\pythonProject6\python习题练习\3.08.py

相对路径:目标文件相对于当前文件的路径

./text.txt  或  text.txt:  表示当前文件所在目录

../ txet.txt:表示当前文件的上层文件夹目录寻找text.txt文件

三、文件操作模式

四、文件读写

写数据:write方法

f=open("./text.txt","w")#以写方式打开/创建文件,采用写方式创建
f.write("i an here\n"*3)#f是函数返回值,write操作会覆盖掉原来的文件内容
f.close()#关闭文件

采用“a”模式可以追加内容

读取内容:read方法

f=open("./text.txt","r",encoding="utf-8")
s=f.read()#将内容赋值
print(s)
f.close()#关闭文件

read()方法是一个字节一个字节读取文件内容,效率低

readline()读取一行数据,

readlines()读取多行数据,返回内容为列表

f=open("./text.txt","r",encoding="utf-8")
s=f.readline()#将内容赋值,读取一行内容
print(s)
f.close()#关闭文件f=open("./text.txt","r",encoding="utf-8")
s=f.readlines()#将内容赋值,读取多行数据,并将内容转化为列表形式
print(s)
f.close()#关闭文件

四、序列化和反序列化

我们可以将字符串写入文件,如果是个对象(列表,元组、字典等)就不能写入文件

所以:我们要将对象序列化(转化为字符序列),再写入文件,反序列化,是相反的操作

f=open("text.txt","a",encoding="utf-8")
lsit=[15,62,51]
f.write(list)
f.close()

对象不能写入文件操作

序列化:

dumps()

import json#导入json模块
f=open("text.txt","w",encoding="utf-8")list=[15,62,51]#初始化序列list=json.dumps(list)#将序列转化为字符序列
print(type(list))#打印类型
f.write(list)
f.close()

转存:dump(list,file)

import json#导入json模块
f=open("text.txt","w",encoding="utf-8")list=[15,62,66]#初始化序列
json.dump(list,f)#转换字符列表和存入文件同时进行
f.close()

反序列化:

loads()将内容反序列化

import json#导入json模块
f=open("text.txt","r",encoding="utf-8")
content=f.read()#读取文件内容
result=json.loads(content)#将字符序列转换为对象列表
print(result)
f.close()

load()

import json#导入json模块
f=open("text.txt","r",encoding="utf-8")
result=json.load(f)#对文件对象操作
print(result)
f.close()


http://www.ppmy.cn/news/1428729.html

相关文章

记录一个sentinel修改密码方法

docker run --name sentinel --restartalways -p 8858:8858 -d bladex/sentinel-dashboard 使用docker装了sentinel,公司不允许使用默认密码。 使用docker exec -it sentinel /bin/bash进入容器内 在app.jar所在目录下创建application.properties的配置文件 # I…

CoFSM基于共现尺度空间的多模态遥感图像匹配方法--论文阅读记录

目录 论文 Multi-Modal Remote Sensing Image Matching Considering Co-Occurrence Filter 参考论文:SIFT系列论文, SIFT Distinctive Image Features from Scale-Invariant Keypoints,作者:David G. Lowe 快速样本共识算法…

mapreduce中的ReduceTask工作机制(Hadoop)

ReduceTask 是 Hadoop 中的一个重要组件,负责对 MapTask 的输出进行合并、排序和归并,最终生成最终的输出结果。 ReduceTask 的工作机制 1. 分组(Shuffle)阶段: 在分组阶段,ReduceTask 会从多个 Mapper …

超聚变服务器快速收集硬件故障日志方法(iBMC)

1、使用网线直接连接服务器的Mgmt口,另外一端连接电脑 2、电脑随便配置一个192.168.2.101段的IP,除100外 3、使用以下默认信息连接IBMC,即可成功登录 默认连接地址:192.168.2.100 默认账号:Administrator 默认密码&am…

通过Admission Webhook限制Namespace下Nodeport Service的端口范围

背景 要给每个namspce分配Nodeport 端口范围, 不允许使用范围之外的端口. 实现对平台 nodeport 端口的统一管理 方案 Kubernetes本身不支持直接限制NodePort的范围。可以通过创建一个Admission Webhook来拦截Service创建请求,并在其端口字段中进行检查和限制。 …

有了这几个工具,企业内部知识库原来搭建这么轻松

随着信息量的爆炸性增长,企业竞争愈发依赖于信息和知识的快速获取与妥善管理。一个高效、易用的内部知识库不仅能加强内部沟通,还能提升员工的工作效率、保证知识的传承与创新。以下是三款适合企业搭建内部知识库的工具,它们各有千秋&#xf…

WINFORM画笔实现画板(如何实现橡皮擦和清空画板功能)

C#内部并没有提供橡皮擦功能所以,只能使用画笔和颜色填充来实现橡皮擦和清空画板功能。 此次小编写了一个简易的画板功能其中包含橡皮擦,清空面板,在窗体运行中修改画笔颜色和像素等功能。 代码如下: using Sunny.UI; using Sunny.UI.Win32…

多种方法完美解决 java.lang.IllegalStateException: Duplicate key 2

文章目录 1. 复现错误2. 分析错误3. 解决问题3.1 方法13.2 方法21. 复现错误 在实际工作中,经常遇到java.lang.IllegalStateException: Duplicate key xxx这样的错误,如下示例代码: @Setter @Getter @Accessors(chain = true) public class