Read Specific Bytes Of File In Python
I want to specify an offset and then read the bytes of a file like offset = 5 read(5) and then read the next 6-10 etc. I read about seek but I cannot understand how it works and
Solution 1:
The values for the second parameter of seek
are 0, 1, or 2:
0 - offset is relative to start of file
1 - offset is relative to current position
2 - offset is relative to end of file
Remember you can check out the help -
>>> help(file.seek) Help on method_descriptor: seek(...) seek(offset[, whence]) -> None. Move to new file position. Argument offset is a byte count. Optional argument whence defaults to 0 (offset from start of file, offset should be >= 0); other values are 1 (move relative to current position, positive or negative), and 2 (move relative to end of file, usually negative, although many platforms allow seeking beyond the end of a file). If the file is opened in text mode, only offsets returned by tell() are legal. Use of other offsets causes undefined behavior. Note that not all file objects are seekable.
Solution 2:
Just play with Python's REPL to see for yourself:
[...]:/tmp$ cat hello.txt
hello world
[...]:/tmp$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open('hello.txt', 'rb')
>>> f.seek(6, 1) # move the file pointer forward 6 bytes (i.e. to the 'w')
>>> f.read() # read the rest of the file from the current file pointer
'world\n'
Solution 3:
seek
doesn't return anything useful. It simply moves the internal file pointer to the given offset. The next read will start reading from that pointer onwards.
Post a Comment for "Read Specific Bytes Of File In Python"