我试图在Python 3中构建这个字节对象:
b'3\r\n'
所以我尝试了显而易见的(对我来说),并发现了一个奇怪的行为:
>>> bytes(3) + b'\r\n'
b'\x00\x00\x00\r\n'
Run Code Online (Sandbox Code Playgroud)
显然:
>>> bytes(10)
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Run Code Online (Sandbox Code Playgroud)
我一直无法看到任何关于为什么字节转换以这种方式阅读文档的指针.但是,我确实在Python问题中发现了一些关于添加format字节的惊喜消息(另请参阅Python 3字节格式化):
http://bugs.python.org/issue3982
这与奇怪的事情(如字节(int)现在返回零)的交互更加糟糕
和:
如果bytes(int)返回该int的ASCIIfication,对我来说会更方便; 但老实说,即使错误也会比这种行为更好.(如果我想要这种行为 - 我从来没有 - 我宁愿它是一个类方法,调用类似"bytes.zeroes(n)".)
有人可以解释一下这种行为来自哪里?
我有这个Python代码来做到这一点:
from struct import pack as _pack
def packl(lnum, pad = 1):
if lnum < 0:
raise RangeError("Cannot use packl to convert a negative integer "
"to a string.")
count = 0
l = []
while lnum > 0:
l.append(lnum & 0xffffffffffffffffL)
count += 1
lnum >>= 64
if count <= 0:
return '\0' * pad
elif pad >= 8:
lens = 8 * count % pad
pad = ((lens != 0) and (pad - lens)) or 0
l.append('>' + …Run Code Online (Sandbox Code Playgroud) 让我们使用字符Latin Capital Letter a和Ogonek(U + 0104)作为例子.
我有一个代表其UTF-8编码形式的int:
my_int = 0xC484
# Decimal: `50308`
# Binary: `0b1100010010000100`
Run Code Online (Sandbox Code Playgroud)
如果使用unichr我得到的功能:\uC484或?(U + C484)
但是,我需要输出: ?
如何转换my_int为Unicode代码点?
我有一个带有十六进制字符的长字符串。
例如:
string = "AA55CC3301AA55CC330F234567"
Run Code Online (Sandbox Code Playgroud)
我正在使用
string.to_bytes(4, 'little')
Run Code Online (Sandbox Code Playgroud)
我希望最终的字符串如下:
6745230F33CC55AA0133CC55AA
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误
AttributeError: 'str' object has no attribute 'to_bytes'
这里有什么问题?
我将MCP3008 ADC芯片连接到驻极体麦克风和我的pi.我在python中使用bit-banging读取输入,我得到一个0-1024的整数.
我按照本教程进行了比特操作:https://learn.adafruit.com/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi/connecting-the-cobbler -to-A-mcp3008
我的问题是如何取这个整数并将其转换为有意义的东西?我可以以某种方式将这些字节写入python中的文件,以获取Audacity可以播放的原始音频数据吗?现在,当我尝试写入值时,它们只显示为整数而不是二进制.我是python的新手,我发现这个链接用于转换原始数据,但是我在生成原始数据时遇到了麻烦:Python打开原始音频数据文件
我甚至不确定这些值代表什么,他们是PCM数据,我必须做与时间有关的数学?
使用 OpenSSL,我可以使用以下命令从各种对象中提取公钥的模数:
openssl rsa -noout -modulus -in {KEY}
openssl req -noout -modulus -in {CSR}
openssl x509 -noout -modulus -in {CERT}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用cryptography或pyopenssl包在 python 中复制它。
我可以从 Python 中的所有这些对象中提取公钥,但我无法弄清楚如何对模数进行编码以匹配 OpenSSL 命令行输出——这似乎是我无法理解的格式的 base64 编码版本来自这 3 个项目中任何一个的文档或源代码。
我想为学校项目将 Python 中的一种编码转换为另一种编码。但是,我正在翻译的编码将在第一位的编码中添加填充。
如何将二进制数字序列向左移动一位,以便它来自:
00000001 11001100 01010101 等等
到
00000011 10011000 10101010 等等
那么最终结果的最低位将是前者的最高位数?
python ×7
python-3.x ×2
adc ×1
audio ×1
binary ×1
int ×1
openssl ×1
optimization ×1
pycrypto ×1
python-2.7 ×1
raspberry-pi ×1
unicode ×1
utf-8 ×1