python - 如何将带有'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对象”。当我想打开它时,我看到消息“当前不支持对象数组”。
有什么简单的解决方案吗?
谢谢!
解决方案
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'
用于二进制。
希望这可以帮助。祝你好运。
推荐阅读
- node.js - 客户端上的套接字 io 仅在我保存包含连接的文件后运行
- r - R中跨列的迭代成对比较
- redirect - HttpClient模拟访问重定向过程中cookies的保存
- android - 为什么在 Android Studio 4.0.1 上出现错误 NotAfter: Fri Jul 09 01:43:44 ICT 2021?
- c++ - 重载 isnan(double&) 的调用不明确
- java - Intellj 想法运行非常非常慢
- mongodb - 构建文本搜索引擎的最佳方法是什么?将需要搜索的所有内容存储在 redis 中,还是直接调用 db?
- reactjs - 如何捕获子组件的事件处理程序中引发的错误?
- visual-studio - Visual Studio 2019 不允许在调试时更改代码
- angular - 此表达式不可调用,类型“UserService”没有调用签名