当前课程知识点:计算思维与人工智能基础 > 第三部分:python基础 > 第七章:文件操作 > 7.2文件的写入
文件的写入
Python中提供两个函数来实现文件的写入操作
通过write和writelines
那么write只能写入一个字符串
我们看右边这段代码
打开一个文件
然后通过write这个函数呢写入一个字符串
就是这样很简单的一个过程
writelines呢是将一个列表写入一个文件
那么这里列表里面的元素全为字符串
那么这个字符串是直接拼接而不换行的
看右边这段代码
那么也是打开文件
我们初始化了一个列表
那么可以通过writelines把这个列表写入到
我们打开的这个文件中
那么写入的时候我们要看一下的话
写入以后指针就到了文件的尾部
通过f.seek函数呢
就是相当于重定位文件
那么括号里面的就是我们文件指定的位置
我们看f.seek(3)
就是把文件指定到3的这个位置
通过for...in的结构把我们这个字符串变量然后输出
是这样子的
那我们在jupyter下看一下这个代码的执行结果
我们来看一下write和writelines应用的几个例子
我们来看这个
我们通过with open的方式打开我们这个
date下的example1这个文件
打开的方式是读写的方式
那么W+其实是覆盖的一个方式
这个文件在呢
就是把原有的东西都把它覆盖掉
我们可以看我们这样子就把他了写进去
后面的\r 是我们换行
如果再往上追加写他是换行写的
我们这写进去
因为是读写方式打开的
所以是我们是可以读的
我们把指针通过f.seek指到最前面
那我们通过f.read的呢就可以看到
就读出来
我们可以把它输出就可以看到我们刚才写进去的文件
我们执行一下
那我们可以看到他就应该写了一句
我们刚才我在宁大上学的这个字符串
好了下面我们可以看
我们与追加的方式来去写的话
我们追加的方式就在原来的这个
字符串后面再追加
打开这个文件追加的方式写我们写的时候呢
他是换行
我们应该是在第二行写
同样我们写完了以后也要看一下呢
可以通过把seek指针指到0
然后再把他读出
输出我们可以看一下
这个就是
一样的我们可以再追加
那么这个追加了以后没有斜杠
r 就不换行了
所以我们在追一个
这再追加一个
我们来看一下再追加一个
他就直接是在后面跟着的啊
只要换行不换行是这样去追加的
我们再看一下这个writelines的使用
那么这个就是writelines我们把这个列表
列表里面有三个元素
然后通过writelines呢
把它写到我们这个打开的这个文件
也是读写的方式来打开
那么这个W是覆盖掉
一样呢写完了以后呢
他这指针就指到5步
我们要去输出的时候呢
我们要看他的时候
我们可以把指针指到某一个位置上
指到第三个位置上
然后呢
我们把这个字符串通过for...in的结构输出
输出我们一样也看一下结果
我们看他如果是一个字符串的话
他就应该是0123
那么就从b开始输出后面的这个串
我们运行一下看
他就按这样的结果输出的
那当然了我们刚才这个呢也是可以什么呀
要追加的
如果我们把它改变一下这个结果
我们再追加一个是追加的方式
我们再运行一下
可以看的到结果
虽然指到3后面他还有追加了这样子
如果我们不写这个读写的方式就只能追加不能读的
那我们只能追加
那前面这些都是没有问题的
我们来运行一下可以看
这个地方是出错了
那么在这个地方的话
你想输出的话
那么因为他是不能读的
所以就不能输出
这个就是
我们这个要注意的
他是不可读的
not readable
我们再来看一下下面这个
这个是我们也打开一个文件
通过writelines的话
他可以就是对我们CSV这种是有结构的一个纯文本文件
他也可以通过这样的方式
来进行读写的方式打开进行写
这个关于CSV的文件呢
我们后面会给大家介绍
在这个地方的话我们是可以看的到
这是通过writelines把它写进去
那么seek是我们把位置移到什么地方
那么还有一个通过tell呢是我们可以看到移到什么地方
我们当前这个是3这个位置就
0这个位置就应该给我们显示应该是0的位置
一样是把
这个是我们通过而writelines
向我们CSV这样的文件里面也可以写入
那我们可以看到这个位置是0
那你这个同样你这个位置是写到3的话
我们可以看到他展示的应该也是什么呀
3
我们可以再执行一次
因为它是覆盖写
所以他是不变的
输出的结果也是不一样的
这个就是我们文件的读写操作的时候需要注意的这个
只有写的时候模式的时候他只能写
那么加了有这个+呢
就是读写模式啊
他可以读
下面我们给大家介绍一下在文件读取的时候用到了一些函数
有split
splitlines
strip和replace
那么split是从空格分隔的文件中读入数据
我们来看右边这一段代码
我们是以读的方式打开了一个文本文件
那么给到什么呀
赋值给f
f.read后面跟split函数的时候呢
他就是按照我们空格把文件里面的字符串进行分割
分割成什么呀
一个一个的元素放到一个列表里面
是这样子
那么输出以后看到这样的结果
splitlines呢就是用换行来分隔我们文件里面的
这些字符串的是这样子
strip是我们去掉我们一个字符串的前面或后面指定的串
或者是空格是这样子
replace是一个替换的这样的一个函数
用后面的新的字符串替换前面的字符串
并且可以指定替换的次数
下面我们在jupyter下面看一下这几个函数的应用
下面我们通过看一下这个几段代码
来更好地理解一下我们前面讲过的这几个函数
我们来看
我们通过open呢把我们的个文本文件以只读的方式打开
读出并输出
而且我们看原来的文件是一个什么样子的
然后呢这一句是
我们前面讲过f.seek
那么seek是移动指针到零的位置
也就是我们文件的最前面
然后呢我们再用read后面加split这个函数
也把我们的读入到一个内容呢
再把它输出
我们看他的运行结果
那么这个就是我们原来文件的内容
我们读出来的
通过read函数读出来
那下面的read.split呢
他读出来的就是变成了一个什么呀
一个列表
那么通过空格把这个字符串分开
他们作为列表的每一个元素
再看下面这个跟上面的是相近的
只不过我们刚才用的是split
这次用的是什么呀
f.read().splitlines
那我们来看看这是文件不同了
那文件不同原来的文件是一个什么样的
运行一下可以看
原来的文件是这样子的
是有两行组成的
而他通过splitlines 呢也是输出的也是一个列表
那么他的元素的分割是通过换行符来进行分割
再看我们下面
另外一个strip使用
也是前面是读出展示
我们如果用strip这样子的这个函数呢
我们看他的输出结果会是什么样
那么原来前面是有空格
strip的函数使用的前后的空格就把他都去掉
如果我们这个看不出来的话
我们指定一个他的前面和后面如果都是指定字符串
可以看得更清楚些
我们看这段代码
前面也是输出
只不过我们这个地方是用的read要删除的是指定的串是什么呀
是0
我们前面的这个输出来的这个读出来这个文件是一段0
后面一段0
有空格
在这个地方呢
你可以看到空格是保留的
这有空格
你看这个地方还是有空格的
其他的呢0呢就被什么呀
前后都去掉
可以前面加一个lstrip
那么只能去ls
就是前面的
我们执行一下啊
你看看前面的去掉后面
那writestrip相当于去掉后面
同样的是这个文件都是example
我们这个就是这个输出的内容是这样
这是去了我们前面的
这是去了后面的
指定的字符串着去的
另外一个就是replace
那么replace我们读文件的后面可以带什么呀replace
replace这就是我们用新的字符串去替换旧的字符串
可以替换指定的次数
我们来执行看一下
前面也是这个号的前面就是我们原文件是这样子的
替换的时候要把宁大替换成211
这样子的话替换两个
如果我们把这个指定的替换的次数去掉以后
我们再运行一看
就是全部都替换
那缺省的时候全部替换
你要替换多少个呢
后面可以再选这个参数
这就是我们在读入文件的时候
会常用的几个函数
当然还有许多呢
大家可以自己再去学习使用
-章测试
-章测试
-第一章:python简介
--章测试
-第二章:编码规范
--2.2常量和变量
--章测试
-第三章:数据类型
--章测试
-第四章:基本运算
--4.2比较运算符
--4.3逻辑运算符
--4.4位运算符
--章测试
-第五章:程序控制结构
--5.1顺序结构
--5.2条件结构
--5.3循环结构
--5.4跳转结构
--5.5异常处理
--章测试
-第六章:函数、模块与面向对象
--6.2面向对象
--6.4模块与包
--章测试
-第七章:文件操作
--7.2文件的写入
--章测试
-第八章:python生态库
--章测试
-第九章:TensorFlow基础
--章测试
-第十章:实例分析与实践
--章测试
-第十一章:人工智能在自然语言中的应用
--章测试