Python:对文件的操作
目录
一:文件的打开和关闭
二、文件的读和写
写的话就需要使用到write函数
读的话需要使用到read函数
三、文件的序列化和反序列化
序列化
dumps
dump
反序列化
load和loads的区别:
一:文件的打开和关闭
利用python打开关闭文件需要使用open和close函数
# open(文件路径,访问模式)
# 模式:w 可写
# r 可读
f = open('demo/test.txt','w')
#文件夹是不可以创建的
f.write('hello world')
#文件的关闭
f.close()
其中对文件的访问模式有
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
二、文件的读和写
正常我们创建完一个文件也是要去读取里面的内容,或写里面的内容
写的话就需要使用到write函数
# 文件写数据
# write方法去写数据fp = open('demo/test.txt','a+')fp.write('hello world,i am superman\n' * 5)
fp.close()
对应文件中查看一下
读的话需要使用到read函数
这里我读取桌面的一个脚本文件
fp = open('C:\\Users\\siyu.guan\\Desktop\\巡检.txt','r',encoding='UTF-8')
# fp.read是一个字符一个字符读
# fp.readline是一行一行的读,效率会高点,但是只会读一行
# fp.resdlines可以按行读取,但是会将所有的数据都读到,并且一一个列表的形式返回,而列表的元素,是一行一行的数据
content = fp.read()
print(content)
执行后看一下控制台
就会显示出里面的内容,需要注意的是read是按字符,readline是按行来读,效率更高,但是只能读一行,readlines可以读多行,但是是以列表的形式去返回值,需要注意
三、文件的序列化和反序列化
通过文件操作,我们可以将字符写入到一个本地文件,但是,如果是一个对象(例如列表,字典,元组等),就无法直接写入到一个文件里,需要对这个对象进行序列化,然后才能写入到文件里设计一套协议,按照某种规则,把内存中的数据转化为字节序列,保存到文件,这就是序列化,反之,从文件的字符序列回复到内存中,就是反序列化python中提供了JSON这个模块来实现数据的序列化和反序列化
序列化
dumps
在使用dumps函数进行序列化时,我们需要先对对象进行序列化,再赋值写入文件中
# 序列化的2种方式
# dumps()
# 导入jsn模块到该文件
import json# (1)创建一个文件
file = open('demo/test.txt','w')
# 定义一个列表
names = ['yy','zz','apple','banana','yyzz']
# 序列化 我们只会在使用scrapy框架的时候,该框架会返回一个对象,我们要将对象写入到文件中,就要使用json.dumps
# 将names这个列表对象,转化为json格式
names_json = json.dumps(names)
# 写入文件
file.write(names_json)
file.close()
# 读一下文件
file = open('demo/test.txt','r')
content = file.read()
print(content)
file.close()
会发现,我们定义names时是一个list类型,但是通过json.dumps后,就会以string类型输出到文件中,这也是我们想要的。
dump
dump函数就会更简单一点,我们不需要多一层赋值+写入,dump可以自动为我们完成
import json
# dump
# 在将对象转换为字符串的同时,指定一个文件的对象,然后把转换后的字符串写入到这个文件里
f = open('demo/test1.txt','w')name = ['tt','aa']
# json.dump 内只需指定要序列化的名称和哪个文件就可以直接完成写入
json.dump(name,f)
f.close()f = open('demo/test1.txt','r')
content1 = f.read()
print(content1)
f.close()
反序列化
比如,我们要将文件中的内容,以列表,元组,字典的形式在python中为为我们展示或方便查询
我们需要使用loads和load函数
# 反序列化
# 将json的字符串变成一个python对象
file = open('demo/test.txt','r')
# 我们读取一下第一个文件内的内容
content = file.read()
# 查看文件内容的类型为string
print(type(content))
file.close()
# 反序列化也有两种方法 loads和load# loads
result = json.loads(content)
print(result)
print(type(result))# load
f = open('demo/test1.txt','r')
result = json.load(f)
file.close()
print(result)
print(type(result))
首先我们读取一个上文中序列化后的文件内容,分别对他们进行一个反序列化,并赋值到一个变量中,观察其类型
load和loads的区别:
在使用loads时,我们要先取文件中的内容将它赋值到一个变量,再对他进行一个反序列化,再赋值后,才可以进行查看
load就会简化一步操作,我们直接打开文件后,使用load直接对指定文件进行反序列化,文件内的内容会自动全部反序列化好,我们再进行查看就可以了
Python:对文件的操作相关推荐
- python36_第36 p,就这几个方法,Python中文件的操作
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第X篇文章,第二阶段的课程:Python基础知识:Python中文件的操作(下篇). 学习本课程,建议先看一遍:[计算机基础知识]课 ...
- python对文件的操作都有什么_python中文件操作的相关内容总结(附示例)
本篇文章给大家带来的内容是关于python中文件操作的相关内容总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 文件操作介绍 说到操作文件我们肯定会想到流,文件的操 ...
- Day6 python对文件的操作——百度飞桨领航团零基础Python入门
python文件操作 前言 一.JSON是什么? 二.python对文件的操作 1.写入文件内容 2.打开.读取.关闭文件 文件数据若有问题采用两种解决方式 file对象的函数列表 写入文件内容 对象 ...
- python怎么读write_Python如何读写文件?python写入文件读写操作详解
Python文件的打开或创建可以使用函数open().该函数可以指定处理模式,设置打开的文件为只读.只写或可读写状态.open()的声明如下所示. open(file, mode='r', buffe ...
- python对文件的操作模式_python对文件的操作
一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件 ...
- python基础------文件读写操作、re、os和sys模块
1. 文件读取 1.1 file文件 file文件读取:只能写入字符串,如果要写入字符串以外的数据,先将他转换为字符串,文件内的数据不容易操作 #文件打开 file.open() #文件关闭 file ...
- Python中文件的操作
1.文件的基本操作 文件打开的格式: file = open(文件路径,读写模式) 文件路径:可以写相对路径,也可以写绝对路径 读写模式:r(读取) w(写入) a(追加) 文件打开后,必须关闭,否则 ...
- python对文件读写操作
不知道大家是否跟我一样,总是分不清楚python里面对于读写操作,今天给自己重新总结一下. w+ 可以同时读写,如果文件不存在,则新建文件,写入时是清空之前的内容. a+可以同时读写,如果文件不存在, ...
- python对文件的操作(一)序列化和反序列化
1.文件操作 1.1 文件操作的流程 1.打开文件,得到文件句柄并赋值给变量. 2.通过句柄对文件进行操作. 3.关闭文件 1.2 从文件中读取数据 要使用文件中的信息,首先需要将信息读取到内存中,为 ...
- python简述文件的操作步骤_Python文件读取操作的详细介绍
本篇文章给大家带来的内容是关于Python文件读取操作的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 读取文件的操作步骤 有一道脑筋急转弯,问把大象装进冰箱的步骤,答案很简 ...
最新文章
- POJ2553 强连通出度为0的应用
- 圣思园java se培训总结(82-)(观察者设计模式)
- 怎么改PHP_PHP实现RPC(简版)
- 学习笔记之APACHE ANT
- python 中的pickle库
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis
- 设计原则之单一职责原则
- 人称代词和Be动词的现在简单肯定式_1
- 2021湖南l高考成绩查询入口,湘潭2021高考成绩查询入口
- session的生命周期是怎样的
- 基于微信小程序的人脸识别
- Everything下载及使用教程【非常详细】(磁盘文件搜索神器)
- 硬盘分区的类型:mbr分区和gpt分区的区别
- c语言 模拟memcmp
- MISC中图片隐藏文件分离
- 镇雄县赤水源品区域公用品牌介绍——中国赤水河源 好品世界珍享
- Windows8.1环境如何删除FlashHelperService.exe文件
- SQL轻松入门(1):增删改与简单查询
- 【解析】Vision Transformer 在图像分类中的应用
- 开源web应用中存在三个XSS漏洞,可导致系统遭攻陷
热门文章
- Atmel Studio 6.0 SP2 2.4 Gb.txt
- 【06】【模板方法模式】
- VC 打开 Excel 文件后,excel.exe进程无法退出
- 使用.NET 框架压缩版开发Windows Mobile 2003 for Smartphone
- 运筹优化学习17:马尔科夫决策规划--例题及Matlab、Lingo和Cplex的建模实现
- Cocos2d 基础知识 2
- luckysheet自定义右键
- 前端每日实战:161# 视频演示如何用纯 CSS 创作一张纪念卓别林的卡片(没有笑声的一天就是被荒废的一天)...
- ubuntu14.04安装360wifi2驱动
- spring boot小区物业管理系统 毕业设计源码101409