Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,如何将字节作为输入而不进行任何操作?_Python_Python 3.x_String_Byte_Bit - Fatal编程技术网

在python中,如何将字节作为输入而不进行任何操作?

在python中,如何将字节作为输入而不进行任何操作?,python,python-3.x,string,byte,bit,Python,Python 3.x,String,Byte,Bit,我把一个字节作为输入 b'\xe2I4\xdd\r\xe5\xfcy^4\xd5' 但它被转换成字符串 因此,当我试图将该字符串转换为字节时,它再次对其进行操作,并将输出作为: b"b'\\xe2I4\\xdd\\r\\xe5\\xfcy^4\\xd5'" 我希望的输出是,当我提供b'\xe2I4\xdd\r\xe5\xfcy^4\xd5'时,它会将其转换为字节,而无需操作或添加任何字符或符号 任何资源或参考资料都会有所帮助 提前谢谢这个坏主意 您可以将input()的值传

我把一个字节作为输入 b'\xe2I4\xdd\r\xe5\xfcy^4\xd5'

但它被转换成字符串

因此,当我试图将该字符串转换为字节时,它再次对其进行操作,并将输出作为:

b"b'\\xe2I4\\xdd\\r\\xe5\\xfcy^4\\xd5'"
我希望的输出是,当我提供b'\xe2I4\xdd\r\xe5\xfcy^4\xd5'时,它会将其转换为字节,而无需操作或添加任何字符或符号

任何资源或参考资料都会有所帮助

提前谢谢

这个坏主意 您可以将
input()
的值传递给
eval()
函数。函数
eval()
直接计算字符串,就像它是在Python中直接执行的一样。虽然一开始它可能感觉是最好的功能,但由于同样的原因,在任何生产级应用程序中使用它几乎是不安全的,因为用户可以使用可能导致很多问题的代码执行任何代码

更好的选择 您可以使用比
eval()
更安全的替代方法,即
ast.literal\u eval()
。此函数将给定字符串计算为Python文本(如字符串、数字、字节对象等)。如果字符串不包含任何文字(如函数调用、对象创建、赋值等),此函数将抛出错误。够了,让我们看看你是怎么做到的

import ast

user_input = input()
eval_expr = ast.literal_eval(user_input)
如果要检查输入是否为
字节
文字,可以使用
isinstance
功能进行检查,然后执行所需操作

# Optional: Handle if `eval_expr` is not a `bytes` literal
if not isinstance(eval_expr, bytes):
    ...

因此,您只需首先导入模块
ast
。然后接受用户的输入。然后将此输入字符串传递给
ast.literal\u eval()
函数以计算字符串。

谢谢,但它在很大程度上帮助了我。