如何在Python中使用“ for”循环将打印输出保存为数组变量?

时间:2019-10-19 20:40:39

标签: python variables binary

我有一个更大的脚本,最后我需要将字符串变量更改为二进制代码。它可以工作,并为给定的字符串打印二进制代码。我想将该二进制代码保存为变量,例如保存为数组-将一个字符保存到一个位置。不幸的是,我没有找到可行的解决方案。我检查了几个有关将打印输出保存到变量的线程,但是似乎没有任何代码可以正常工作。

以下代码:

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对象”。当我想打开它时,看到消息“当前不支持对象数组”。

对此有任何简单的解决方案吗?

谢谢!

1 个答案:

答案 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'用于二进制。

希望这会有所帮助。祝你好运。