Python从零开始系列连载(32)——Python文件操作(下)

239 阅读3分钟

文件写入

之前讲过了文件打开创建和关闭,我们接着来谈谈文件写入

之前我们说了使用open()加上文件的绝对路径或者相对路径可以打开文件

这里我们讲一个更简单的方法

我们导入os模块

os模块是和操作系统相关的模块

在Python中这样操作:

图片.png

这段代码指出了当前的工作目录

我们在学习资料.txt中加入如下内容,并且保存

图片.png

我们在Python中打开这个文件:

图片.png

因为之前指出了当前目录,所以可以给出相对路径即可(学习资料.txt在当前的工作路径)

我们使用read()方法可以读取文本内容

图片.png

我们还可以使用write()方法写入内容:

图片.png

报错啦!这不科学啊!小明,你来解释一下!

小明:老湿,是不是你的文本保存了什么不健康的信息?

小明,你不要把自己的经历经验强加给别人!

小红:老师,上节课说过,默认的打开模式是 r (只读),所以不能写入.

嗯,小红说的对,我们修改一下,首先关闭文档

图片.png

此时我们打开该txt:

图片.png

内容已经写进去了!

我们在Python中读出来:

图片.png

如果再次读取呢?

图片.png

发现读出来的内容为空!

解释一下,这里的read()方法相当于读取全部内容,如果读完内容,再次读取时候,书签已经在文章末尾,再次往后读当然没有内容啦~

如果我只想读取一行呢?

图片.png

文本一共两行,如果读取完最后一行,再次读取和上面的read()一样,当然没内容啦~

如果我想读取多行呢?

小红:老师,可以使用循环!

很好,我们试试!

图片.png

可是为什么只有第二句被读出来了呢?

因为while中的判断已经执行了一次readline()

而在print()中的readline()执行读出的是第二句

当然,我们可以换成for循环:

图片.png

小明:老湿!如果你不知道有多少行呢?你这样指定读取两次算是作弊!

小明这个问题提的好!我们这里引进一个方便的方法:

图片.png

readlines()方法将每行内容作为列表元素,返回的是一个列表

小明:这个看起来不舒服啊,老湿给改改呗!

小红:老师,我知道怎么改!

图片.png

小红学得很好!

其实,这个还能改的更有派森特色!你们知道怎么改么?

【小明和小红均摇头

是时候展现真正的技术了!

图片.png

小明:老湿,我看懂了!你用的列表生成式,可是为啥你要加个 g = ?

小明今天的问题提的都很好啊!如果不加,我们看看内容

图片.png

会返回列表,而这个列表的元素是None,因为print( ) 函数作为列表的元素是没返回值的

小明:老湿,你说的这个不好理解啊

好的,我们举个栗子:

图片.png

将print()赋值给 i

我们打印 i 发现是None

小明:哦哦哦哦哦~我懂了!

下课

人生苦短,我选Python

未完待续,连载中.....

今日作业:

自己用Python创建一个文件,写一首(手)诗(湿)并且读出来

图片.png

(阿喂!是用Python读,不是让你用嘴读!)

现在还坚持再看连载学习的你们真的很棒棒!

入门部分已经学完大部分啦!加油