我正在解析文件,需要跟踪我在文件中的位置... 假设我有文件test.txt,我正在做一个while循环,在每行写入文件时不断读入数据。在发生崩溃的情况下,我使用文件的tell()方法在另一个文件中标记我的位置。有没有办法标记线并能够返回到该线位置,或者我是否需要跟踪仅跟踪的字节?
#this is just example code, not the real thing
f = open('test.txt')
pos = open('pos.txt', 'w')
f.seek(pos)
while 1:
readline(f)
pos.write(f.tell())
更新:文件大小约为1GB
答案 0 :(得分:2)
您可能更喜欢这样:http://docs.python.org/library/linecache.html
“如果发生崩溃,我会使用文件的tell()方法在另一个文件中标记我的位置。”
好。
“有没有办法标记线条并能够返回到该线位置”
这就是你 做的事情。你用tell
标记了这一行。 tell
值是seek
使用的位置。
如果有帮助,假装你不知道单位是什么。假设tell
只是一个找到正确行的“魔法”键。
答案 1 :(得分:1)
跟踪f.tell()
报告的内容(通常是字节数,但不一定是),然后您可以直接跳转到文件中的正确位置。
如果您只跟踪行数,则必须从头开始再次读取该文件,计算所看到的新行数。