开发者社区> 问答> 正文

如何利用python文件操作快速定位到多少行:报错

要读取的文件的行数比较多,大概4.5亿行。每行的字节数不一样

想用多线程处理文件中每行内容。(单线程太慢)

那么现在如何快速定位到行呢?

用循环readline方法由于要返回每行内容,是不是太慢?

展开
收起
kun坤 2020-06-07 21:19:25 811 0
1 条回答
写回答
取消 提交回答
  • 基本上不能吧。
    ######每行的字节数都不同,可以考虑对每行建个哈希索引
    ######

    很简单,直接定位就行

    f = open('test.txt')

    fn = list(f)

    fn[0] 就是第一行的数据

    类推,有不明白的给我留言

    ######回复 @mavarick : 你怎么就这么死脑经。这是方法。不会把文件内容分段读取,还可以使用线程技术。难道你只知道copy,######你这样的话,光内存都要至少21个G######

    标准库里倒是有linecache,  不过你这量级肯定是靠不住的

    分段读(读大一点,open第三个参数可以设置buffer), 然后把line_no:offset-size存到bsddb的btree库吧

    ######没明白什么意思,能说细点吗?######我只是想问一下,什么应用会出现21G的单文件,期望下次见到有个印象。######为什么会有这样的文件啊 是log吗?
    2020-06-07 21:19:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载