查看原文
其他

爬虫俱乐部精彩答疑——Python中的三种文件读取方法

爬虫俱乐部 Stata and Python数据分析 2023-01-01

本文作者:孙一博,中南财经政法大学金融学院

本文编辑:郭培军

技术总编:王玉婷

Stata&Python云端课程来啦!

      好消息好消息,爬虫俱乐部开辟小鹅通战场!!爬虫俱乐部隆重推出小鹅通网络课程,将Stata基础课程Stata进阶课程Python课程都上传至小鹅通平台,欢迎大家多多支持订阅!报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台留言哦。如需了解详情,可以通过课程链(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~













引言














内容好,讲得好,更要答疑好!我们爬虫俱乐部不仅有优质、丰富的Stata数据分析和网络爬虫课程,更有强大、负责、高效的答疑服务。暑期课程开课以来,山东财经大学、河南师范大学、中南财经政法大学、上海对外经贸大学、郑州航空工业管理学院等众多高校加入了我们的课程。在我们强大答疑团队的努力下,同学们的学习热情日益高涨,学习效率不断提高,师生之间创造了良好的交流环境!上周,无论是清晨还是傍晚,面对大家的踊跃提问,我们团队都及时细致地为学员们提供答疑服务!



接下来仍然是精彩的答疑案例分享,供大家学习和参考。

答疑案例分享

Python中三种文件读取的方法是read()、readline()、readlines(),下面这位学员就在这里遇到了问题,先后使用readlines()和read()读取同一文件,但read()读取的结果仅出现一个空格,究竟是为什么呢?这里涉及一个指针的概念,我们的答疑老师立即为这位学员进行了详细的讲解。

这里涉及到Python读取文件的指针机制。在打开文件时,默认指针在文件的最开头,当我们使用read()、readline()、readlines()等函数对文件进行读取时,指针会相应地移动。这些函数在读取文件内容时,是从指针的位置向后进行读取,并不是每次都从开头读取。这就是为什么这位学员用两种函数同时读取时,第二次的读取结果只显示了一个空格。指针在文件操作时是十分重要的,需要时我们还可以用seek()方法手动移动指针。
这三个函数中,如果size均为默认值,read() 每次读取整个文件,readline() 只读取文件的一行,readlines() 每次按行读取整个文件内容,将读取到的内容放到一个列表中,返回list类型,并且每一行后面都带有一个回车符"\n"。
在Python中可以通过tell()方法返回指针当前所在的位置,通过size参数可以设置返回字符的长度,在三种方法中的作用也不大相同。下面小编通过一个例子带大家直观地感受一下。
准备需要读取的文件:

.read()

with open("Example.txt","r")as f: print(f.read(3)) print(f.tell()) print(f.read(10)) print(f.tell())

输出结果:

在read()中,全部内容可看着一个整体,传入size则返回这个整体的传入长度的内容。在读取了内容后,指针会有一个相应的移动,指针位置在第一次读取后的位置为3,读取第二次时便从位置3开始,移动至13。.readline()
with open("Example.txt","r")as f: print(f.readline(10)) print(f.tell()) print(f.readline()) print(f.tell())

输出结果:

在readline()中,是返回当前行。如果指定的长度超过当前行的长度,则只会返回当前行的内容,即遇到换行符后不会再返回换行符后面的内容。从输出结果我们也可以看出,指定的长度10大于每行的长度,指针只移动到当前行的末尾就结束了,第二次读取便从第二行开始。.readlines()
with open("Example.txt","r")as f: print(f.readlines()) print(f.tell())

输出结果:

可以看到,readlines()每次按行读取整个文件内容,返回list类型,并且每一行后面都带有一个回车符。readlines()会返回当前指针所处行的所有内容,并将指针移动到行末尾,再次调用时就从指针的下一个字符开始。

以上就是这次案例的分享啦,希望我们挑选出的案例对大家有所启发和帮助。我们的课程为帮助学员更好地学习,在周一到周日都安排了课程老师通过腾讯会议为学员们答疑解惑。届时,参加其他网课的学员也可以在所在的答疑群向授课老师咨询。各个课程老师的答疑时间以及答疑主要内容如下:


此外,我们在每个答疑群都设置了两位到四位不等的常规答疑老师,学员遇到的问题,可以先在群里咨询常规答疑老师,复杂的问题可以通过常规答疑与授课老师预约office hour的咨询。

最后,欢迎大家报名参与我们的课程学习,爬虫俱乐部将为您提供的零基础、无障碍的Stata数据分析和网络爬虫课程,更重要的是,讲得好不如答疑答的好!我们高效、强大、负责的答疑团队,将为您提供认真负责,细致入微的答疑服务。在这里,您的学习效率和效果将成倍提升,一站式购买,无后顾之忧。














END

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。



对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!





往期推文推

      爬虫俱乐部的精彩答疑--认真仔细方能写出好程序

      实习招聘┃教你最牛逼的数据分析技术

       数据公司实习,为什么选我们?

       爬虫俱乐部Python精彩答疑——更换Jupyter Notebook浏览器及dropna()参数详解

       爬虫俱乐部的精彩答疑--如何打开Excel中扩展名与文件源码不符的文件

     【爬虫篇】解锁《梦华录》之东京繁华生活

      爬虫俱乐部的精彩答疑——DOS命令       爬虫俱乐部的精彩答疑之换行问题

爬虫俱乐部的精彩答疑--路径设置乱码怎么破?

爬虫俱乐部的精彩答疑--putdocx的二三事

爬虫俱乐部精彩答疑之Python篇

爬虫俱乐部的精彩答疑--花式重命名变量

      今天你还是“刘畊宏女孩”吗?

爬虫俱乐部在山东财经大学金融学院暑期Stata网课上的精彩答疑

JupyterNotebook——如何更换默认文档目录

Stata绘图系列——玩转绘图通用选项(一)

出人意料!这所大学的A级学科总数竟超越清华北大!

Stata数据读入——打开方式不同?

数据类型——Dict、Set与Frozenset简析

Stata小贴士之外部命令安装路径

有一种夏天叫做宫崎骏的夏天

关于我们 


   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里
为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可

以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


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

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