这里我来系统的介绍一下python进行文件遍历的几种方法,并进行细致比较。
文件的遍历
因为文件保存了很多字符和行,因此也是循环常见的典型使用案例,最原始的方法可以调用文件对象的read方法,把文件内容一次性加载至字符串对象
file = open('myfile.txt', 'r')
print(file.read())
hello text file
goodbyt text file
Hahahahah
那么如果想逐行读取文本文件呢?for循环是最易于编写及执行最快的选择,这里有两种方法,
for line in open('myfile.txt','r').readlines():
print(line, end='')
for line in open('myfile.txt','r'):
print(line, end='')
hello text file
goodbyt text file
Hahahahah
这两种方法的运行结果是一样的,表面差别不大,但实际上有很大的区别:
第一种方法通过readlines方法,会首先一次性把文件载入到行字符串列表中,然后再对这个字符串列表进行迭代;
而第二种方法运行的原理则有所不同,他并非一次性将全部的文件内容载入到内存中,而是在迭代的时候,循环到了哪一行才将哪一行读入到内存。这里涉及到一个新的概念----迭代器(open函数返回的那个就是文件迭代器),专栏里的文章会着重系统介绍,欢迎关注。
现在我们只需要知道,第二种方法是文本文件读取的最佳选择,它简单、且对任意大小的文件都有效,因为他不会一次性把整个文件都载入到内存中,相反第一种方法存在内存压力过大的问题。
关于数据科学更系统、更深入的探讨可进入我们的专栏《Python数据科学之路》:酱油哥:来吧,一起踏上Python数据科学之路zhuanlan.zhihu.com
本专栏模仿美剧剧集编排分为八季,
第一季:Python编程语言核心基础;
第二季:Python数据分析基本工具;
第三季:机器学习线性代数核心-Python描述;
第四季:利用python进行时间序列分析;
第五季:概率统计基础-Python描述;
第六季:最优化方法-Python描述;
第七季:机器学习典型算法专题;
第八季:实战热点深度应用。
有任何问题也可以咨询微信号:zhangyumeng0422