python - 构造具有直到运行时未知的转义值(变量)的字符串
问题描述
假设我在字符串中有一个转义的十六进制值:
val = "\x70"
和功能
def foo(input):
for byte in bytes(input, "utf-8"):
print(byte)
如果我打电话
foo(val) #prints 112
该功能按需要工作。但是,如果我不知道要转义的十六进制代码的值,但又想转义它并以相同的方式迭代它怎么办?
unknown_until_runtime = "70"
val = "\x" + unknown_until_runtime
结果是
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \xXX escape
我可以选择转义转义字符,但这会破坏 foo() 中迭代器的功能:
unknown_until_runtime = "70"
val = "\\x" + unknown_until_runtime
foo(val) #prints 92 120 55 48
这种“字符串构造方法”不是按预期转义整个字节,而是不会转义任何东西,只是创建了一个不能按我想要的方式运行的“字符字符串”。在我的一生中,当值在运行时未知时,我找到了一种方法来获取这个“转义字节字符串”。有什么建议么?
解决方案
如果您将功能更改为以下内容,它应该可以工作:
def foo(input_str)
for byte in bytes('\\x' + input_str, 'utf-8').decode('unicode_escape'):
print(byte)
受此答案启发的解决方案。
推荐阅读
- python-3.x - Keras 中的模型并行性
- javascript - 如何使用 ES6 脚本的模板文字
- json - 无法将 JSON 值获取到颤振中的字段
- where-clause - Maximo REST API WHERE 子句
- python - 使用配置解析器接收列表
- tensorflow - 无法打开 cx_freeze 创建的 exe
- javascript - 为什么我不能在 componentDidMount 中收到 ref?(React)
- prolog - 以系统的方式在 Prolog 中报告 *为什么* 查询失败
- javascript - copyFileSync 在本地工作,但在全局上找不到 src
- lua - Lua 中播放器状态中的变量未按预期更新