我使用for
循环来读取文件,但我只想读取特定的行,比如行#26
和#30
。有没有什么内置的特性来实现这一点呢?
发布于 2013-05-08 11:38:49
为了提供另一种解决方案:
import linecache
linecache.getline('Sample.txt', Number_of_Line)
我希望这是快速而简单的:)
发布于 2015-03-24 04:41:27
读取文件的速度令人难以置信。读取100MB的文件只需不到0.1秒(请参阅我的文章Reading and Writing Files with Python)。因此,您应该完整地阅读它,然后使用单行代码。
这里的大多数答案并不是错误的,而是糟糕的风格。打开文件应该始终使用with
,因为它会确保文件再次关闭。
所以你应该这样做:
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
巨大的文件
如果您碰巧有一个巨大的文件,并且需要考虑内存消耗,您可以逐行处理它:
with open("path/to/file.txt") as f:
for i, line in enumerate(f):
pass # process line i
发布于 2018-07-04 00:15:37
其中一些很可爱,但可以更简单地完成:
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+数据文件。祝好运!
https://stackoverflow.com/questions/2081836
复制相似问题