Python Forum
how to write offset number to disk use python? - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: how to write offset number to disk use python? (/thread-25748.html)



how to write offset number to disk use python? - Pyguys - Apr-10-2020

please advice. here is sample of result get view disk hex with xxd in terminal. thanks.
Output:
00000000: 0000 0000 0000 0000 dddd dddd dddd dddd ................ 00000010: 0000 0000 0000 0010 dddd dddd dddd dddd ................ 00000020: 0000 0000 0000 0020 dddd dddd dddd dddd ....... ........ 00000030: 0000 0000 0000 0030 dddd dddd dddd dddd .......0........ 00000040: 0000 0000 0000 0040 dddd dddd dddd dddd .......@........ 00000050: 0000 0000 0000 0050 dddd dddd dddd dddd .......P........ 00000060: 0000 0000 0000 0060 dddd dddd dddd dddd .......`........ 00000070: 0000 0000 0000 0070 dddd dddd dddd dddd .......p........ 00000080: 0000 0000 0000 0080 dddd dddd dddd dddd ................ 00000090: 0000 0000 0000 0090 dddd dddd dddd dddd ................ 000000a0: 0000 0000 0000 00a0 dddd dddd dddd dddd ................ 000000b0: 0000 0000 0000 00b0 dddd dddd dddd dddd ................



RE: how to write offset number to disk use python? - bowlofred - Apr-10-2020

Can you explain further what you want? I don't know what you mean by "write offset number to disk".

Are you trying to write data into a file at a specified offset? Or maybe you're looking for the offset of data in an already-written file?


RE: how to write offset number to disk use python? - Pyguys - Apr-11-2020

(Apr-10-2020, 04:00 PM)bowlofred Wrote: Can you explain further what you want? I don't know what you mean by "write offset number to disk".

Are you trying to write data into a file at a specified offset? Or maybe you're looking for the offset of data in an already-written file?

hi,
thanks for reply. i am trying to write offset number to Entire hard drive format as your see my post.
rough ideas:
import sys
max = sys.maxsize
for i in range(0,max,10):
    print(i)
and this offset number write to every line offset 7 place. left side of offset 7 fill 00, offset 8-15 fill dd.
Output:
026023b0: 0000 0000 0260 23b0 dddd dddd dddd dddd .....`#......... 026023c0: 0000 0000 0260 23c0 dddd dddd dddd dddd .....`#......... 026023d0: 0000 0000 0260 23d0 dddd dddd dddd dddd .....`#......... 026023e0: 0000 0000 0260 23e0 dddd dddd dddd dddd .....`#......... 026023f0: 0000 0000 0260 23f0 dddd dddd dddd dddd .....`#......... 02602400: 0000 0000 0260 2400 dddd dddd dddd dddd .....`$......... 02602410: 0000 0000 0260 2410 dddd dddd dddd dddd .....`$.........
here is offset 02602410 output
it's not full code. still thinking how to do it. need your help. thanks.


RE: how to write offset number to disk use python? - bowlofred - Apr-11-2020

Rather than a 7-place offset, I'd probably do an 8-place offset and just multiply the number by one nibble (16). Something like this?

import struct
import sys

d_bytes = struct.pack(">Q", 0xdddddddddddddddd)
for index in range(10):
    offset_bytes = struct.pack(">Q", index * 16)
    sys.stdout.buffer.write(offset_bytes)
    sys.stdout.buffer.write(d_bytes)
And when run:
Output:
$ python3 offset.py | xxd 00000000: 0000 0000 0000 0000 dddd dddd dddd dddd ................ 00000010: 0000 0000 0000 0010 dddd dddd dddd dddd ................ 00000020: 0000 0000 0000 0020 dddd dddd dddd dddd ....... ........ 00000030: 0000 0000 0000 0030 dddd dddd dddd dddd .......0........ 00000040: 0000 0000 0000 0040 dddd dddd dddd dddd .......@........ 00000050: 0000 0000 0000 0050 dddd dddd dddd dddd .......P........ 00000060: 0000 0000 0000 0060 dddd dddd dddd dddd .......`........ 00000070: 0000 0000 0000 0070 dddd dddd dddd dddd .......p........ 00000080: 0000 0000 0000 0080 dddd dddd dddd dddd ................ 00000090: 0000 0000 0000 0090 dddd dddd dddd dddd ................



RE: how to write offset number to disk use python? - Pyguys - Apr-11-2020

(Apr-11-2020, 07:18 AM)bowlofred Wrote: Rather than a 7-place offset, I'd probably do an 8-place offset and just multiply the number by one nibble (16). Something like this?

import struct
import sys

d_bytes = struct.pack(">Q", 0xdddddddddddddddd)
for index in range(10):
    offset_bytes = struct.pack(">Q", index * 16)
    sys.stdout.buffer.write(offset_bytes)
    sys.stdout.buffer.write(d_bytes)
And when run:
Output:
$ python3 offset.py | xxd 00000000: 0000 0000 0000 0000 dddd dddd dddd dddd ................ 00000010: 0000 0000 0000 0010 dddd dddd dddd dddd ................ 00000020: 0000 0000 0000 0020 dddd dddd dddd dddd ....... ........ 00000030: 0000 0000 0000 0030 dddd dddd dddd dddd .......0........ 00000040: 0000 0000 0000 0040 dddd dddd dddd dddd .......@........ 00000050: 0000 0000 0000 0050 dddd dddd dddd dddd .......P........ 00000060: 0000 0000 0000 0060 dddd dddd dddd dddd .......`........ 00000070: 0000 0000 0000 0070 dddd dddd dddd dddd .......p........ 00000080: 0000 0000 0000 0080 dddd dddd dddd dddd ................ 00000090: 0000 0000 0000 0090 dddd dddd dddd dddd ................
Thanks so much. That’s what I need!