- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我必须打开数千个文件,但只读取前 3 行。
目前,我正在这样做:
def test_readline(filename):
fid = open(filename, 'rb')
lines = [fid.readline() for i in range(3)]
这会产生结果:
The slowest run took 10.20 times longer than the fastest. This could mean that an intermediate result is being cached. 10000 loops, best of 3: 59.2 µs per loop
另一种解决方案是将 fid 转换为列表:
def test_list(filename):
fid = open(filename, 'rb')
lines = list(fid)
%timeit test_list(MYFILE)
The slowest run took 4.92 times longer than the fastest. This could mean that an intermediate result is being cached. 10000 loops, best of 3: 374 µs per loop
哎呀!!有没有更快的方法来只读取这些文件的前 3 行,或者 readline() 是最好的吗?您能回复一下替代方案和时间安排吗?
但是最终我必须打开数千个单独的文件,并且它们不会被缓存。那么,这重要吗(看起来很重要)?
(603μs 未缓存方法读取行与 1840μs 列表方法)
此外,这是 readlines() 方法:
def test_readlines(filename):
fid = open(filename, 'rb')
lines = fid.readlines()
return lines
The slowest run took 7.17 times longer than the fastest. This could mean that an intermediate result is being cached. 10000 loops, best of 3: 334 µs per loop
最佳答案
您可以使用itertools.islice
对可迭代对象进行切片:
import itertools
def test_list(filename):
with open(filename, 'r', encoding='utf-8') as f:
return list(itertools.islice(f, 3))
(我稍微更改了open
,因为以二进制模式逐行读取文件有点不寻常,但您可以恢复它。)
关于python - 有没有比 fid.readline() 更快的 pythonic 方法来读取文件的前几行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45757778/
我想在 Angular Controller FollowBtnCtrl 中使用输入 fId 值,我制作了一个调用 followMe() 函数的按钮,定义在里面FollowBtnCtrl Contro
我必须打开数千个文件,但只读取前 3 行。 目前,我正在这样做: def test_readline(filename): fid = open(filename, 'rb') lin
我想以编程方式检索某个 Google 地方的 Google FID。我可以成功检索某个位置的 Place ID 和 CID,但我似乎找不到 FID。 例如,我的企业有以下信息: 公司名称:Adobe
在我的应用程序中,pointerdown 事件的 FID 非常多。它是同构 react 应用程序。谁能建议一些减少它的好方法。最近谷歌搜索控制台引入了速度(实验性)。它显示我的大部分网站页面由于 FI
在我的一些网站上,Google 的 Search Console 工具和 PageSpeed 在我的主页上显示移动设备上的最大首次输入延迟为 300 秒,PC 上的最大首次输入延迟为 900 秒。 奇
我在 Asp.Net(后端:Vb)中使用 BVcommerce 工具创建了一个基于电子商务的 Web 应用程序,该工具工作得非常好,但由于谷歌的页面排名和 SEO 应用程序的新指南必须通过 Web V
如果满足条件,我如何才能只获取特定记录? 我有代码为 "SELECT a.id, a.text, a.uid, a.time FROM story a INNER JOIN friends b
我是一名优秀的程序员,十分优秀!