How to change HEX to ASCII? and error with UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 246: ordinal not in range(128)
How to change HEX to ASCII? and error with UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 246: ordinal not in range(128)
d = open("test2.txt",'w')
e = open("test3.pcm",'w')
for line in lines:
s = pStart.search(line)
if s != None:
start = s.end()
e = pEnd.search(line)
end = e.start()
#print(line[start:end])
d.write(line[start:end])
d.write('\n')
d.write(bytes.fromhex(line[start:end]).decode("ASCII"))
我想将 HEX txt 更改为 ASCII。因为我想将数据转换为 pcm 和 wav 文件
和 test2.txt 文件有这些 txt...
”
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 00 FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FE FF FE FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 01 00 01 00 00 00 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 0 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 FF FF 00 00 FF FF 01 00 00 00 00 00 FF FF 0 FF 0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 0 0 0 0 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FE FF FE FF FF FF FF FF FF 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 00 00 FF FF FF FF FF FF FF FF FF 00 00 01 00 01 00 00 00 00 00 FF FF 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 01 00 01 00 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF 00 00 00 00 FF 0 0 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 0 1 01 0 01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
“
但是我有这个错误
回溯(最后一次调用):
文件“C:/Users/user/PycharmProjects/soundApp_Ver_1.0.0/test.py”,第 88 行,位于
d.write(bytes.fromhex(行[开始:结束]).解码("ASCII"))
UnicodeDecodeError:'ascii' 编解码器无法解码位置 246 中的字节 0xff:序号不在范围内(128)
根据您描述的输入和输出:
import re
in_str = "[ABC TEST] CNT(1) S(0) 00 00 12 34 12 34 12 34"
pattern = re.compile('\s([0-9]+)')
s = ' '.join(re.findall(pattern, in_str))
print(s)
输出:
00 00 12 34 12 34 12 34
这是你指定的。对其他字符串重复此过程。
只需将 ^.+?(?=(?:\d\d )+)
替换为任何内容,删除 2 位系列之前的所有内容。
import re
strings = [
'[ABC TEST] CNT(1) S(0) 00 00 12 34 12 34 12 34 .....',
'[ABC TEST] CNT(2) S(0) 00 12 34 56 78 88 12 12 .....',
]
for str in strings:
res = re.sub(r'^.+?(?=(?:\d\d )+)', '', str)
print(res)
d = open("test2.txt",'w')
e = open("test3.pcm",'w')
for line in lines:
s = pStart.search(line)
if s != None:
start = s.end()
e = pEnd.search(line)
end = e.start()
#print(line[start:end])
d.write(line[start:end])
d.write('\n')
d.write(bytes.fromhex(line[start:end]).decode("ASCII"))
我想将 HEX txt 更改为 ASCII。因为我想将数据转换为 pcm 和 wav 文件
和 test2.txt 文件有这些 txt...
” 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 00 FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FE FF FE FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 01 00 01 00 00 00 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 0 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 FF FF 00 00 FF FF 01 00 00 00 00 00 FF FF 0 FF 0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 0 0 0 0 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FE FF FE FF FF FF FF FF FF 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 00 00 FF FF FF FF FF FF FF FF FF 00 00 01 00 01 00 00 00 00 00 FF FF 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 01 00 01 00 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF 00 00 00 00 FF 0 0 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 0 1 01 0 01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 “
但是我有这个错误
回溯(最后一次调用): 文件“C:/Users/user/PycharmProjects/soundApp_Ver_1.0.0/test.py”,第 88 行,位于 d.write(bytes.fromhex(行[开始:结束]).解码("ASCII")) UnicodeDecodeError:'ascii' 编解码器无法解码位置 246 中的字节 0xff:序号不在范围内(128)
根据您描述的输入和输出:
import re
in_str = "[ABC TEST] CNT(1) S(0) 00 00 12 34 12 34 12 34"
pattern = re.compile('\s([0-9]+)')
s = ' '.join(re.findall(pattern, in_str))
print(s)
输出:
00 00 12 34 12 34 12 34
这是你指定的。对其他字符串重复此过程。
只需将 ^.+?(?=(?:\d\d )+)
替换为任何内容,删除 2 位系列之前的所有内容。
import re
strings = [
'[ABC TEST] CNT(1) S(0) 00 00 12 34 12 34 12 34 .....',
'[ABC TEST] CNT(2) S(0) 00 12 34 56 78 88 12 12 .....',
]
for str in strings:
res = re.sub(r'^.+?(?=(?:\d\d )+)', '', str)
print(res)