Python 官方文档:入门教程 => 点击学习
使用python3怎么读取文件指定行?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。行遍历实现在python中如果要将一个文件完全加载到内存中,通过file.readlines(
使用python3怎么读取文件指定行?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
在python中如果要将一个文件完全加载到内存中,通过file.readlines()即可,但是在文件占用较高时,我们是无法完整的将文件加载到内存中的,这时候就需要用到Python的file.readline()进行迭代式的逐行读取:
filename = 'hello.txt'with open(filename, 'r') as file: line = file.readline() counts = 1 while line: if counts >= 50000000: break line = file.readline() counts += 1
这里我们的实现方式是先用一个with语句打开一个文件,然后用readline()函数配合while循环逐行加载,最终通过一个序号标记来结束循环遍历,输出文件第50000000行的内容。该代码的执行效果如下:
dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py real 0m10.359suser 0m10.062ssys 0m0.296s
可以看到这里的耗时为10s多一些。
虽然在python的readline函数中并没有实现读取指定行内容的方案,但是在另一个库linecache中是实现了的,由于使用的方式较为简单,这里直接放上代码示例供参考:
filename = 'hello.txt'import linecachetext = linecache.getline(filename, 50000000)
该代码的执行结果如下:
dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py real 0m11.904suser 0m5.672ssys 0m6.231s
虽然在实现方式上简化了许多,但是我们发现这个实现的用时超过了11s,还不如我们自己手动实现的循环遍历方案。因此如果是对于性能有一定要求的场景,是不建议采用这个方案的。
我们知道用linux系统本身自带的sed指令也是可以获取到文件指定行或者是指定行范围的数据的,其执行指令为:sed -n 50000000p filename即表示读取文件的第50000000行的内容。同时结合python的话,我们可以在python代码中执行系统指令并获取输出结果:
filename = 'hello.txt'import osresult = os.popen('sed -n {}p {}'.fORMat(50000000, filename)).read()
需要注意的是,如果直接运行os.system()是没有返回值的,只有os.popen()是有返回值的,并且需要在尾巴加上一个read()的选项。该代码的执行结果如下:
dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py real 0m2.532suser 0m0.032ssys 0m0.020s
可以看到直接使用sed指令的执行速度很快,但是用这种方法并不是一本万利的,比如以下这个例子:
filename = 'hello.txt'import osresult = os.popen('sed -n {}p {}'.format(500, filename)).read()
我们把读取第50000000行内容改为读取第500行的内容,再运行一次程序:
dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py real 0m2.540suser 0m0.037ssys 0m0.013s
1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为python开发。3.人工智能应用,基于大数据分析和深度学习而发展出来的人工智能本质上已经无法离开python。4、系统运维工程项目,自动化运维的标配就是python+Django/flask。5、金融理财分析,量化交易,金融分析。6、大数据分析。
看完上述内容,你们掌握使用python3怎么读取文件指定行的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网Python频道,感谢各位的阅读!
--结束END--
本文标题: 使用python3怎么读取文件指定行
本文链接: https://www.lsjlt.com/news/277712.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0