我正在读取二进制文件以获取它包含的信息。我的目标是提取从文件中的特定位置开始且长度可变的一些字符。 我读到的文件如下:
with open("raw_files/P1925aM", "rb") as binary_file:
binary_file.seek(436, 0)
some_information = binary_file.read(331)
some_information = some_information.decode('ascii').rstrip('\x00')
binary_file.close()
输出是一个变量(“字节”类),其中包含以下内容:
“17627005 SWU1.1\x00\x00\x00....”
到目前为止,我设法将字节变量解码为 ASCII 并使用以下方法去除 '\x00:
some_information = some_information.decode('ascii').rstrip('\x00')
输出如下:17627005 SWU1.1,这正是我想要的。
现在我有一个变量(类“str”)。 例如,如果变量看起来像这样,我现在遇到的问题是:
“17627005 SWU1.1\x02\x00\x00....”
some_information = some_information.decode('ascii').rstrip('\x02')
不起作用。输出保持“17627005 SWU1.1\x02\x00\x00....”
有什么提示我在这里做错了什么吗?
最佳答案
strip
系列函数仅从字符串的末端删除;您的 \x02
不是字符串中的最后一个字符。如果要从字符串右侧删除 \x00
和 \x02
的任意组合,请将两者传递给 rstrip
:
some_information = some_information.decode('ascii').rstrip('\x00\x02')
关于python - 从字符串中去除\x00 和\x02,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57357313/