Python 十六进制解码器
Python hex decoder
嘿,我需要解码十六进制并写入文本文件,但我只能对其进行编码而不能解码。
我写了一个脚本来编码哪些有效并打印到名为 encoded.txt.
的文本文件中
import binascii
with open('encoded.txt','r') as text:
a = text.readlines()
for x in a:
b = binascii.unhexlify(x)
with open('decoded.txt','a') as done:
done.write(b + "\n")
到目前为止,我编码(打印“Hello World!”)其中 returns 7072696e74202248656c6c6f20576f726c642122 但是当我尝试解码它时 return 一个错误,指出它是奇怪长度的字符串。这可能是因为我在编码器中使用了“\n”吗?
谢谢
file.readlines()
returns 行 包含行分隔符 .
在从十六进制转换为字节之前去除行分隔符:
b = binascii.unhexlify(x.strip())
str.strip()
删除所有前导和尾随空格(空格、制表符、换行符、回车 returns 等)。由于 unhexlify
的十六进制输入应该只包含字母 a-z 和数字,这非常完美。您可以将其限制为删除尾随换行符 only with x.rstrip('\n')
.
注意file.readlines()
将整个文件读入内存;在这种情况下,您可以只处理行 一个接一个 并避免内存开销。打开输出文件一次:
with open('encoded.txt','r') as text, open('decoded.txt', 'w') as done:
for line in text:
decoded_line = binascii.unhexlify(line.strip())
done.write(decoded_line + "\n")
嘿,我需要解码十六进制并写入文本文件,但我只能对其进行编码而不能解码。 我写了一个脚本来编码哪些有效并打印到名为 encoded.txt.
的文本文件中import binascii
with open('encoded.txt','r') as text:
a = text.readlines()
for x in a:
b = binascii.unhexlify(x)
with open('decoded.txt','a') as done:
done.write(b + "\n")
到目前为止,我编码(打印“Hello World!”)其中 returns 7072696e74202248656c6c6f20576f726c642122 但是当我尝试解码它时 return 一个错误,指出它是奇怪长度的字符串。这可能是因为我在编码器中使用了“\n”吗? 谢谢
file.readlines()
returns 行 包含行分隔符 .
在从十六进制转换为字节之前去除行分隔符:
b = binascii.unhexlify(x.strip())
str.strip()
删除所有前导和尾随空格(空格、制表符、换行符、回车 returns 等)。由于 unhexlify
的十六进制输入应该只包含字母 a-z 和数字,这非常完美。您可以将其限制为删除尾随换行符 only with x.rstrip('\n')
.
注意file.readlines()
将整个文件读入内存;在这种情况下,您可以只处理行 一个接一个 并避免内存开销。打开输出文件一次:
with open('encoded.txt','r') as text, open('decoded.txt', 'w') as done:
for line in text:
decoded_line = binascii.unhexlify(line.strip())
done.write(decoded_line + "\n")