【发布时间】:2021-08-08 23:28:04
【问题描述】:
有一个文件,内容如下:
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'
","ﺞﻨﮕﯾﺪﻧ
","ﺏﺭﺎﯾ ﭗﯾﺩﺍ ﮎﺭﺪﻧ ﯽﮐ ﺖﯿﻣ
"
如您所见,问题存在于输入行,但不存在于目标和预测行(尽管被打乱但没关系)
【问题讨论】:
-
文件内容不清楚。请编辑您的问题并复制其内容(在文本编辑器中使用),然后将其粘贴到其中。
-
我用
vim打开了文件,它们只是unicode字符。它是 vim 显示的。然而,它们实际上是波斯字母,类似于 علی به مدرسه رفت -
然后将其中的 Unicode 字符粘贴到您的问题中——因为这是必须从文件中读取的内容。
-
@martineau 它们就像它所显示的那样,没有区别。但是,目标和预测文件以波斯语显示,但输入文件保持原样。
-
嗯,由于
b'前缀和结尾'引号字符,文件的内容似乎在Pythonbytesstring literal syntax 中似乎很奇怪。也许您可以将文件的副本放在某处(例如pastebin.com)并将指向它的链接放入您的问题中。