从文件中读取二进制字符串并另存为十六进制

2024-06-27 09:38:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的文件行:\x8b\xe2=V\xa2\x050\x10\x1f\x11lvCh\x80\xf8z\xf8%\tHKE\xf2\xc8\x92\x12\x83\xe8R\xd3\xc8 我需要把这个字符串转换成十六进制代码:0x8be23d56a20530101f116c76436880f87af82509484b45f2c8921283e852d3c8

我试着用python和nodejs来做这个。但如果我在控制台模式下这样做-一切都很好,如果我从文件读取,我会得到错误的结果,因为从文件中读取的是带引号的字符串。在


Tags: 文件字符串xe2x10x8bx80x1fx92
2条回答

对于python:

import binascii
f = open('path/to/file', 'rb').read()
hex_encoded = binascii.hexlify(f).decode('utf-8')
print(hex_encoded) #Prints hex stream as string

希望有帮助

在控制台应用程序中使用的字符串,其中“\”字符在转换为缓冲区时不计算在内。请用双反斜杠。从文件读取数据时没有问题。在

对于NodeJs,将字符串转换为buffer并将该缓冲区转换为十六进制值。在

fs = require('fs')
fs.readFile('notes.txt', 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }
  const buf = Buffer.from(data, 'ascii');
  //converting string into buffer
  var hexvalue = buf.toString('hex');
  //with buffer, convert it into hex
  console.log(hexvalue);
});

对于python,可以试试这个。在

^{pr2}$

相关问题 更多 >