我有一个更大的脚本,最后我需要将字符串变量更改为二进制代码。它可以工作,并为给定的字符串打印二进制代码。我想将该二进制代码保存为变量,例如保存为数组-将一个字符保存到一个位置。不幸的是,我没有找到可行的解决方案。我检查了几个有关将打印输出保存到变量的线程,但是似乎没有任何代码可以正常工作。
以下代码:
import numpy as np
str = "sample"
print(" ".join(f"{ord(i):08b}" for i in str))
显然不起作用的东西:
[1] this = print(" ".join(f"{ord(i):08b}" for i in str))
[2] this = np.array(print(" ".join(f"{ord(i):08b}" for i in str)))
在[2]的情况下,它没有给出任何错误,并且变量已保存,但变量的内容为“ numpy模块的ndarray对象”。当我想打开它时,看到消息“当前不支持对象数组”。
对此有任何简单的解决方案吗?
谢谢!
答案 0 :(得分:0)
print()
返回None
。由于您不想将任何内容写入sys.stdout,因此应将其删除。像这样:
this = np.array(' '.join(format(ord(i), 'b') for i in str))
您甚至可以将其转换为bytearray
:
this = np.array(' '.join(format(x, 'b') for x in bytearray(st)))
在这里使用format(...)
更有意义。 'b'
用于二进制。
希望这会有所帮助。祝你好运。