查看原文
其他

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

2017-11-23 王大伟 Python爱好者社区

作者:王大伟

Python爱好者社区唯一小编

博客:https://ask.hellobi.com/blog/wangdawei


前言

前文传送门:

Python从零开始系列连载(1)——安装环境

Python从零开始系列连载(2)——jupyter的常用操作

Python从零开始系列连载(3)——Python的基本数据类型(上)

Python从零开始系列连载(4)——Python的基本数据类型(下)

Python从零开始系列连载(5)——Python的基本运算和表达式(上)

Python从零开始系列连载(6)——Python的基本运算和表达式(下)

Python从零开始系列连载(7)——Python程序的基本控制流程(上)

Python从零开始系列连载(8)——Python程序的基本控制流程(下)

Python从零开始系列连载(9)——Python特色数据类型(列表)(上)

Python从零开始系列连载(10)——Python特色数据类型(列表)(下)

Python从零开始系列连载(11)——Python特色数据类型(元组)(上)

Python从零开始系列连载(12)——Python特色数据类型(元组)(下)

Python从零开始系列连载(13)——Python特色数据类型(字典)(上)

Python从零开始系列连载(14)——Python特色数据类型(字典)(下)

Python从零开始系列连载(15)——Python特色数据类型(集合)(上)

Python从零开始系列连载(16)——Python特色数据类型(集合)(下)

Python从零开始系列连载(17)——Python特色数据类型(函数)(上)

Python从零开始系列连载(18)——Python特色数据类型(函数)(中)

Python从零开始系列连载(19)——Python特色数据类型(函数)(下)

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

Python从零开始系列连载(21)——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创建一个文件,写一首(手)诗(湿)并且读出来



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


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

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


小编的免费Python入门课程已经登场,等你来撩~

点击阅读原文,立即学习

Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

0.小编的Python入门视频课程!!!

1.崔老师爬虫实战案例免费学习视频。

2.丘老师数据科学入门指导免费学习视频。

3.陈老师数据分析报告制作免费学习视频。

4.玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。

5.丘老师Python网络爬虫实战免费学习视频。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存