.encode('utf8')重复反斜杠

2024-06-28 20:14:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个使用字节的小脚本

我接受cli中的一些参数

例如:

wrapper.py encode \x50\x90\x51\x91\x52\x92\x53\x93\x54\x94\x55\x95\x56\x96\x57\x97
if len(sys.argv)>=3:
    if sys.argv[2]!=None and len(sys.argv[2])==48:
        sys.argv[2]=bytes(sys.argv[2].replace("x",t).encode('utf-8'))
        
        print(sys.argv[2])
        sys.exit()
    else:
        print("BAD KEY, KEY must be long 16 bytes")
        sys.exit() 

我将此作为输出:

b'\\x50\\x90\\x51\\x91\\x52\\x92\\x53\\x93\\x54\\x94\\x55\\x95\\x56\\x96\\x57\\x97'

删除编码我无法对字节进行转换,但得到了正确的输出:

if len(sys.argv)>=3:
    if sys.argv[2]!=None and len(sys.argv[2])==48:
        sys.argv[2]=sys.argv[2].replace("x",t)
        
        print(sys.argv[2])
        sys.exit()
    else:
        print("BAD KEY, KEY must be long 16 bytes")
        sys.exit()

输出

\x50\x90\x51\x91\x52\x92\x53\x93\x54\x94\x55\x95\x56\x96\x57\x97

Tags: keylenifsysexitprintargvx93