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')
?