Python Forum
DEC pack, unpack and disk-images
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
DEC pack, unpack and disk-images
#4
(Jun-04-2024, 03:43 AM)Curbie Wrote: does that denote an initialize string of bytes or something else?
Yes the b in front of a literal string denotes a string of bytes
"ABC" # this is a string of unicode characters (type str)
'ABC'  # this is also a string of unicode characters (type str)
b'ABC' # this is a string of bytes (type bytes)
A string of bytes behaves like a read-only array of 8 bits integers
>>> list( b'tom' )
[116, 111, 109]
>>> "tom".encode('ascii')
b'tom'
>>> b'tom'.decode('ascii')
'tom'
>>> 
(Jun-04-2024, 03:43 AM)Curbie Wrote: because I don’t learn anything, which was the point of my post.
Your main problem will be the time it takes to get familiar with Python's libraries. In this case I want to use the bytes.translate() method because then I don't have to iterate through the bytes of the string (more precisely the iteration is done by the underlying C implementation of Python), so I first create a 256 bytes translation table that I need to use this function.

Here is a version of unpack()
rev_table = r50 + b'\xff' * (256 - 40)

def unpack(n):
    if 0 <= n < 64000:
        a, c = divmod(n, 40)
        a, b = divmod(a, 40)
        return bytes((a, b, c)).translate(rev_table)
    raise ValueError(n)
In Python it is better to raise exceptions than to return error codes (because error codes need more ifs for the caller while exceptions propagate by themselves)
« We can solve any problem by introducing an extra level of indirection »
Reply


Messages In This Thread
DEC pack, unpack and disk-images - by Curbie - Jun-03-2024, 06:57 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-04-2024, 03:43 AM
RE: DEC pack, unpack and disk-images - by Gribouillis - Jun-04-2024, 06:09 AM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-04-2024, 04:06 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-06-2024, 04:40 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-07-2024, 06:45 AM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-08-2024, 10:23 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-10-2024, 12:06 AM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-16-2024, 06:43 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-16-2024, 09:41 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-17-2024, 09:07 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-17-2024, 09:08 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-18-2024, 06:52 AM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-18-2024, 11:37 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-19-2024, 03:31 PM
RE: DEC pack, unpack and disk-images - by Curbie - Jun-20-2024, 04:14 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Too much values to unpack actualpy 3 657 Feb-11-2024, 05:38 PM
Last Post: deanhystad
  Hard disk structure like a file selection dialog malonn 2 945 Aug-09-2023, 09:14 PM
Last Post: malonn
  unpack dict menator01 1 1,336 Apr-09-2022, 03:10 PM
Last Post: menator01
  ValueError: not enough values to unpack (expected 4, got 1) vlearner 2 6,595 Jan-28-2022, 06:36 PM
Last Post: deanhystad
  JS Buffer.from VS struct.pack DreamingInsanity 3 2,668 Apr-05-2021, 06:27 PM
Last Post: DreamingInsanity
  [SOLVED] [geopy] "ValueError: too many values to unpack (expected 2)" Winfried 2 3,057 Mar-30-2021, 07:01 PM
Last Post: Winfried
  Cannot unpack non-iterable NoneType object, i would like to ask for help on this. Jadiac 3 9,182 Oct-18-2020, 02:11 PM
Last Post: Jadiac
  subprogram issues: cannot unpack non-iterable function object error djwilson0495 13 6,407 Aug-20-2020, 05:53 PM
Last Post: deanhystad
  How to Calculate CPU, Disk, Memory and Network utilization rate skvivekanand 1 2,157 Jun-16-2020, 08:53 PM
Last Post: jefsummers
  struct.unpack failed Roro 2 3,528 Jun-13-2020, 05:28 PM
Last Post: DreamingInsanity

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020