Alan Gauld wrote:
"ranjan das" <ranjand2...@gmail.com> wrote
For instance lets say the unique string is "documentation" (and
"documentation" occurs more than once in the file). Now, on each
instance
that the string "documentation" occurs in the file, I want to read
the 25th
line (from the line in which the string "documentation" occurs)
Is there a goto kind of function in python?
There is a seek() function but it would require the lines to be of
constant length. Its probably easier to just use a loop:
def file_jump(fileobj, n =1):
for line in range(n):
fileobj.readline()
That will move the file pointer forward n lines.
Note, if the jumps can overlap the original then you might want
to use tell() before the jump to store the original location then
use seek() to go back. (eg if the trigger was in line 5 and the
jump was 7 lines but the trigger also occured in line 10)
Pseudocode:
for line in file:
if trigger in line:
marker = file.tell()
file_jump(file, jumps[trigger])
process_file_data()
file.seek(marker) # go back to original position
HTH,
If you know the line numbers you can use the linecache module to get any
line from any file for eg.
>>> import linecache
>>> linecache.getline('/etc/passwd', 4)
'sys:x:3:3:sys:/dev:/bin/sh\n'
If what you require is more complex than simply that then you might be
better off doing line-for-line processing on the file.
--
Kind Regards,
Christian Witts
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor