2013-03-29 2 views
1

У меня есть функция python для установки тома в winamp, которая, по-видимому, принимает только один байт, поскольку это аргумент управления громкостью. Когда я пытаюсь передать ему номер типа строки, он устанавливает том, что кажется очень нечетным. Я предполагаю, что это потому, что вместо того, чтобы передавать байты, он считывает верхние байты верхнего конца целого числа, которое он получает.python single byte function

Мой вопрос: как я могу гарантировать, что номер строкового типа преобразуется только в один беззнаковый байт в диапазоне (0 - 255) перед отправкой?

if "volume" in message.lower(): 
    if (len(wordList) > 4): 
     xcomPrint("Usage : \\winamp volume (0 to 100)") 
    elif (Arg1.isdigit()): 
     winampInstance.setVolume(Arg1) 
     xcomPrint("Volume set to " + str(Arg1)) 
    else: 
     xcomPrint("Incorrect Arguments") 
     xcomPrint("Usage : \\winamp volume (0 to 100)") 

По существу, мне нужно сгруппировать Arg1 в один байт. (Я думаю)

ответ

0

Вы можете попробовать использовать STRUCT

import struct 
Arg1 = struct.pack('B', 255) 
0

Ничего,

фактически бросая его из строки в целое работы с помощью:

int(Arg1) 

полный код:

if "volume" in message.lower(): 
    if (len(wordList) > 4): 
     xcomPrint("Usage : \\winamp volume (0 to 100)") 
    elif (Arg1.isdigit()): 
     winampInstance.setVolume(int(Arg1)) 
     xcomPrint("Volume set to " + str(Arg1)) 
    else: 
     xcomPrint("Incorrect Arguments") 
     xcomPrint("Usage : \\winamp volume (0 to 100)")