python单字节函数

时间:2013-03-29 04:49:20

标签: python casting byte

我有一个python函数用于设置winamp中的音量,它似乎只接受单个字节作为音量控制参数。当我尝试传递一个字符串类型的数字时,它将音量设置为看似非常奇怪的值。我假设这是因为它不是传递一个字节而是读取它传递的整数的高端大字节。

我的问题是,如何确保在发送之前将字符串类型编号转换为范围(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强制转换为单个字节。 (我认为)

2 个答案:

答案 0 :(得分:0)

没关系,

实际上将它从string转换为int使用:

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)")

答案 1 :(得分:0)

您可以尝试使用struct

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