首页 > 解决方案 > 如何将带有'for'循环的打印输出保存为Python中的数组变量?

问题描述

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

下面的代码:

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

有什么简单的解决方案吗?

谢谢!

标签: pythonvariablesbinary

解决方案


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

希望这可以帮助。祝你好运。


推荐阅读