Python中的字节填充/取消填充
我想用python写一个小脚本,它可以进行字节填充/取消填充,因为我不知道怎么做,我只是想先填充 因此,目标很简单,有一个具有三个输入的函数,类似这样:Python中的字节填充/取消填充,python,byte,Python,Byte,我想用python写一个小脚本,它可以进行字节填充/取消填充,因为我不知道怎么做,我只是想先填充 因此,目标很简单,有一个具有三个输入的函数,类似这样:ByteStuffing(flagbyte,escapebyte,frame) 并在开始和结束时输出标志字节,在中间填充帧 假设我的标志字节是Z,转义字节是A,帧是LEONARDO ByteStuffing(Z,A,LEONARDO)=zleonardoz p、 转义字节也转义帧中的标志字符,而不仅仅是转义字节本身 取消填充只是反向功能 现在,我
ByteStuffing(flagbyte,escapebyte,frame)
并在开始和结束时输出标志字节,在中间填充帧
假设我的标志字节是Z,转义字节是A,帧是LEONARDO
ByteStuffing(Z,A,LEONARDO)=zleonardoz
p、 转义字节也转义帧中的标志字符,而不仅仅是转义字节本身
取消填充只是反向功能
现在,我真的不熟悉编程,只是刚刚开始,所以在编码方面我真的不是很有创意,这就是为什么我想从这个小“项目”开始,有人能给我一些如何开始解决这个问题的想法吗
p、 s Python版本2.7.12
编辑:
根据Keerthana Prabhakaran的回答,我最终得出了这个结论
def applyByteStuffing(flagbyte, escapebyte, payload):
flagbyte = ("Z")
escapebyte = ("A")
x = payload.replace (escapebyte, escapebyte*2)
y = x.replace (flagbyte, escapebyte+flagbyte)
print (flagbyte + y + flagbyte)
return;
如果我试着这样测试它:
def test():
assert applyByteStuffing("Z", "A", "TAZZA") == "ZTAAAZAZAAZ"
如果
test()
我得到断言错误。有人知道我的断言错误发生在哪里吗
只是尝试一下:
applybytefinding(“Z”、“A”、“TAZZA”)
给我正确的输出:ztaaazazaz您可以为此使用str.replace()。用另一个重复的字符串替换转义字节,并用flagbyte填充结果字符串
>>> flagbyte + frame.replace(escapebyte,escapebyte*2)+ flagbyte
'ZLEONAARDOZ'
对于更新后的问题,您需要从applyByteFilding
返回一些内容,以便可以针对RHS上的字符串断言返回值
def applyByteStuffing(flagbyte, escapebyte, payload):
x = payload.replace (escapebyte, escapebyte*2)
y = x.replace (flagbyte, escapebyte+flagbyte)
return flagbyte + y + flagbyte #return value
然后断言
assert applyByteStuffing('Z','A','LEONARDO') == 'ZLEONAARDOZ'
为此,可以使用str.replace()。用另一个重复的字符串替换转义字节,并用flagbyte填充结果字符串
>>> flagbyte + frame.replace(escapebyte,escapebyte*2)+ flagbyte
'ZLEONAARDOZ'
对于更新后的问题,您需要从applyByteFilding
返回一些内容,以便可以针对RHS上的字符串断言返回值
def applyByteStuffing(flagbyte, escapebyte, payload):
x = payload.replace (escapebyte, escapebyte*2)
y = x.replace (flagbyte, escapebyte+flagbyte)
return flagbyte + y + flagbyte #return value
然后断言
assert applyByteStuffing('Z','A','LEONARDO') == 'ZLEONAARDOZ'
@妮卡,我不知道什么是小包装。我知道字节填充和位填充,我的意思是字节填充,而不是比特,我从来没有听说过字节填充before@NickA我不知道什么是小包装。我知道字节填充和位填充,我的意思是字节填充,不是bitah,我以前从未听说过字节填充。谢谢你的想法,我之前编辑过这个问题,说我还需要转义标志字节。因此,我对您的解决方案进行了一点扩展,它总体上是有效的。我现在将用新问题编辑我的问题:)很高兴它有帮助!我已经更新了断言错误的答案!谢谢你的想法,我之前编辑过这个问题,说我还需要转义标志字节。因此,我对您的解决方案进行了一点扩展,它总体上是有效的。我现在将用新问题编辑我的问题:)很高兴它有帮助!我已经更新了断言错误的答案!