有一个包含以下内容的文件:
b'prefix:input_text'
b'oEffect:PersonX \xd8\xaf\xd8\xb1 \xd8\xac\xd9\x86\xda\xaf ___ \xd8\xa8\xd8\xa7\xd8\xb2\xdb\x8c \xd9\x85\xdb\x8c \xda\xa9\xd9\x86\xd8\xaf'
b'oEffect:PersonX \xd8\xaf\xd8\xb1 \xd8\xac\xd9\x86\xda\xaf ___ \xd8\xa8\xd8\xa7\xd8\xb2\xdb\x8c \xd9\x85\xdb\x8c \xda\xa9\xd9\x86\xd8\xaf'
这是我尝试读取这些行并将它们转换为可读的utf字符,但它仍然在输出文件中显示相同的字符串:
f = open(input_file, "rb")
for x in f:
inpcol.append(x.decode('utf-8'))
f = open(pred_file, "r")
for x in f:
predcol.append(x)
f = open(target_file, "r")
for x in f:
targcol.append(x)
data =[]
for i in tqdm(range(len(targcol))):
data.append([inpcol[i],targcol[i],predcol[i]])
pd.DataFrame(data,columns=["input_text","target_text","pred_text"]).to_csv(f"{path}/merge_{predfile}.csv", encoding="utf-8")
print("Done!")
输出文件为:
,input_text,target_text,pred_text
0,"b'prefix:input_text'
","target_text
","ﺏﺭﺎﯾ ﺩﺮﮐ ﻮﻀﻌﯿﺗ
"
1,"b'xNeed:PersonX \xd8\xaf\xd8\xb1 \xd8\xac\xd9\x86\xda\xaf ___ \xd8\xa8\xd8\xa7\xd8\xb2\xdb\x8c \xd9\x85\xdb\x8c \xda\xa9\xd9\x86\xd8\xaf'
","ﺞﻨﮕﯾﺪﻧ
","ﺏﺭﺎﯾ ﭗﯾﺩﺍ ﮎﺭﺪﻧ ﯽﮐ ﺖﯿﻣ
"
正如您所看到的,问题存在于输入行,但不存在于目标行和预测行(尽管有加扰,但这没关系)
似乎有人把字节写错了。有人用
str(bytes)
代替了bytes.decode('utf-8')
。或者可能代码是为Python 2
创建的,它以与Python 3
不同的方式处理字节和字符串如果你能纠正编写它的代码,那么你必须修正文本
作物
b' '
使用特殊编码
'raw_unicode_escape'
转换回bytes
并正确地转换为
string
现在呢
给我
编辑:
它似乎将代码转换为带有双斜杠的字符串,如
b'\\xd8'
,但print()
可能会将其显示为单斜杠,但print(repr())
可能会使用双斜杠显示它可能需要更多的
decode/encode
来正确转换它相关问题 更多 >
编程相关推荐