从命令行中查找文件中特定行的字节位置的最快方法是什么?
例如
$linepos myfile.txt 135283
我正在为一个大小为几GB的CSV编写一个解析器,如果解析器被暂停,我希望能够从最后一个位置恢复.解析器是在Python中,但即使在file.readlines()上进行迭代也需要很长时间,因为文件中有数百万行.我想简单地做file.seek(int(command.getoutput(“linepos myfile.txt%i”%lastrow))),但我找不到shell命令来有效地执行此 *** 作.
编辑:很抱歉混乱,但我正在寻找一个非Python解决方案.我已经知道如何从Python中做到这一点.
最佳答案来自@ chepner对我的另一个答案的评论:position = 0 # or wherever you left off last timetry: with open('myfile.txt') as file: file.seek(position) # zero in base case for line in file: position = file.tell() # current seek position in file # process the lineexcept: print 'exception occurred at position {}'.format(position) raise
总结 以上是内存溢出为你收集整理的linux – 如何在文件中查找特定行的字节位置全部内容,希望文章能够帮你解决linux – 如何在文件中查找特定行的字节位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)