你能用python中的文件操作去一行吗?

时间:2010-03-02 20:20:04

标签: python

我正在解析文件,需要跟踪我在文件中的位置... 假设我有文件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

2 个答案:

答案 0 :(得分:2)

您可能更喜欢这样:http://docs.python.org/library/linecache.html

“如果发生崩溃,我会使用文件的tell()方法在另一个文件中标记我的位置。”

好。

“有没有办法标记线条并能够返回到该线位置”

这就是你 做的事情。你用tell标记了这一行。 tell值是seek使用的位置。

如果有帮助,假装你不知道单位是什么。假设tell只是一个找到正确行的“魔法”键。

答案 1 :(得分:1)

跟踪f.tell()报告的内容(通常是字节数,但不一定是),然后您可以直接跳转到文件中的正确位置。

如果您只跟踪行数,则必须从头开始再次读取该文件,计算所看到的新行数。