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

Python 从文件中读取二进制字符串并另存为十六进制,python,node.js,binary,hex,Python,Node.js,Binary,Hex,我有这样一行的文件:\x8b\xe2=V\xa2\x050\x10\x1f\x11lvCh\x80\xf8z\xf8%\tHKE\xf2\xc8\x92\x12\x83\xe8R\xd3\xc8 我需要将此字符串转换为十六进制代码:0x8be23d56a20530101f116c76436880f87af82509484b45f2c8921283e852d3c8 我试着用python和nodejs来做这件事。但如果我在控制台模式下执行此操作—所有操作都正常,如果我从文件中读取,则会得到错误的结果

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

我试着用python和nodejs来做这件事。但如果我在控制台模式下执行此操作—所有操作都正常,如果我从文件中读取,则会得到错误的结果,因为从文件中读取的是带引号的字符串。

对于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
希望它对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,将字符串转换为缓冲区,并将该缓冲区转换为十六进制值

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,您可以尝试以下方法

file = open("notes.txt","r")
str = file.readline()
str = str.encode('utf-8')
print (str.hex())

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

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

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,您可以尝试以下方法

file = open("notes.txt","r")
str = file.readline()
str = str.encode('utf-8')
print (str.hex())

“我试过这样做…我有错误的结果”是任何人都无法调试的。向我们展示一个,我们就可以向你展示你做错了什么。另外,Python和JavaScript的答案也不一样,所以不要问这两个问题。你尝试了
fs.readFileSync('filename')。toString('hex')
?“我尝试了这么做……我有错误的结果”是任何人都无法调试的。向我们展示一个,我们就可以向你展示你做错了什么。另外,Python和JavaScript的答案也不一样,所以不要问这两个问题。你尝试了
fs.readFileSync('filename')。toString('hex')