首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从文件中读取特定行(按行号)?

如何从文件中读取特定行(按行号)?
EN

Stack Overflow用户
提问于 2010-01-18 01:14:11
回答 22查看 676.3K关注 0票数 259

我使用for循环来读取文件,但我只想读取特定的行,比如行#26#30。有没有什么内置的特性来实现这一点呢?

EN

回答 22

Stack Overflow用户

发布于 2013-05-08 11:38:49

为了提供另一种解决方案:

代码语言:javascript
复制
import linecache
linecache.getline('Sample.txt', Number_of_Line)

我希望这是快速而简单的:)

票数 36
EN

Stack Overflow用户

发布于 2015-03-24 04:41:27

读取文件的速度令人难以置信。读取100MB的文件只需不到0.1秒(请参阅我的文章Reading and Writing Files with Python)。因此,您应该完整地阅读它,然后使用单行代码。

这里的大多数答案并不是错误的,而是糟糕的风格。打开文件应该始终使用with,因为它会确保文件再次关闭。

所以你应该这样做:

代码语言:javascript
复制
with open("path/to/file.txt") as f:
    lines = f.readlines()
print(lines[26])  # or whatever you want to do with this line
print(lines[30])  # or whatever you want to do with this line

巨大的文件

如果您碰巧有一个巨大的文件,并且需要考虑内存消耗,您可以逐行处理它:

代码语言:javascript
复制
with open("path/to/file.txt") as f:
    for i, line in enumerate(f):
        pass  # process line i
票数 12
EN

Stack Overflow用户

发布于 2018-07-04 00:15:37

其中一些很可爱,但可以更简单地完成:

代码语言:javascript
复制
start = 0 # some starting index
end = 5000 # some ending index
filename = 'test.txt' # some file we want to use

with open(filename) as fh:
    data = fin.readlines()[start:end]

print(data)

这将使用简单的列表切片,它加载整个文件,但大多数系统将适当地最小化内存使用,它比上面给出的大多数方法更快,并且适用于我的10G+数据文件。祝好运!

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2081836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档