Python从零开始系列连载(20)——Python文件操作(下)
文件写入
之前讲过了文件打开创建和关闭,我们接着来谈谈文件写入
之前我们说了使用open()加上文件的绝对路径或者相对路径可以打开文件
这里我们讲一个更简单的方法
我们导入os模块
os模块是和操作系统相关的模块
在Python中这样操作:
这段代码指出了当前的工作目录
我们在学习资料.txt中加入如下内容,并且保存
我们在Python中打开这个文件:
因为之前指出了当前目录,所以可以给出相对路径即可(学习资料.txt在当前的工作路径)
我们使用read()方法可以读取文本内容
我们还可以使用write()方法写入内容:
报错啦!这不科学啊!小明,你来解释一下!
小明:老湿,是不是你的文本保存了什么不健康的信息?
小明,你不要把自己的经历经验强加给别人!
小红:老师,上节课说过,默认的打开模式是 r (只读),所以不能写入.
嗯,小红说的对,我们修改一下,首先关闭文档
此时我们打开该txt:
内容已经写进去了!
我们在Python中读出来:
如果再次读取呢?
发现读出来的内容为空!
解释一下,这里的read()方法相当于读取全部内容,如果读完内容,再次读取时候,书签已经在文章末尾,再次往后读当然没有内容啦~
如果我只想读取一行呢?
文本一共两行,如果读取完最后一行,再次读取和上面的read()一样,当然没内容啦~
如果我想读取多行呢?
小红:老师,可以使用循环!
很好,我们试试!
可是为什么只有第二句被读出来了呢?
因为while中的判断已经执行了一次readline()
而在print()中的readline()执行读出的是第二句
当然,我们可以换成for循环:
小明:老湿!如果你不知道有多少行呢?你这样指定读取两次算是作弊!
小明这个问题提的好!我们这里引进一个方便的方法:
readlines()方法将每行内容作为列表元素,返回的是一个列表
小明:这个看起来不舒服啊,老湿给改改呗!
小红:老师,我知道怎么改!
小红学得很好!
其实,这个还能改的更有派森特色!你们知道怎么改么?
【小明和小红均摇头
是时候展现真正的技术了!
小明:老湿,我看懂了!你用的列表生成式,可是为啥你要加个 g = ?
小明今天的问题提的都很好啊!如果不加,我们看看内容
会返回列表,而这个列表的元素是None,因为print( ) 函数作为列表的元素是没返回值的
小明:老湿,你说的这个不好理解啊
好的,我们举个栗子:
将print()赋值给 i
我们打印 i 发现是None
小明:哦哦哦哦哦~我懂了!
下课
人生苦短,我选Python
未完待续,连载中.....
今日作业:
自己用Python创建一个文件,写一首(手)诗(湿)并且读出来