Python, odpowiednia warto

Potrzebujesz pomocy z C, C++, perl, python, itp.
valaCoder
Posty: 3
Rejestracja: 21 października 2012, 16:50

Python, odpowiednia wartość binascii

Post autor: valaCoder »

Czy ktoś może mi wyjaśnić dlaczego poniższa funkcja zwraca błąd:

Kod: Zaznacz cały

    self.buffer = binascii.unhexlify(hex_data)
TypeError: Non-hexadecimal digit found

Kod: Zaznacz cały

def send(self, hex_data):
        pending = True
        while(pending):
            self.semBuf.acquire()
            if(self.buffer == ''):
self.buffer = binascii.unhexlify(hex_data)
                pending = False
            self.semBuf.release()
            time.sleep(0.001)
Czocher
Beginner
Posty: 140
Rejestracja: 26 maja 2007, 23:19

Post autor: Czocher »

A co próbujesz zrobić? Pobrać liczbę heksadecymalną i przemienić ją na decymalną?
Jeżeli tak, to robi się to w ten sposób:

Kod: Zaznacz cały

self.buffer = int(hex_data, 16)

Funkcja hexlify przemienia dany ciąg na jego reprezentację heksadecymalną, funkcja przeciwna, unhexlify, zamienia dane na powrót do pierwotnej postaci. Błąd:

Kod: Zaznacz cały

Non-hexadecimal digit found
pojawia się gdy ciąg zawiera znaki różne od [a-zA-Z0-9]. Do unhexlify nie podajemy liczb postaci 0x12 (bez przedrostka 0x).
ODPOWIEDZ