Python - 将文件中的八进制文本转换为非英文文本

Python - Convert Octal to non-English Text from file

我正在尝试将以 八进制 编码的非英语文件转换回其原始格式并将其存储在另一个文件中。这些文件包括:

样本i_file

020035-027+021035
025-026035+025035
025-022035+022035
020035-025+025035
025+026035
026035-026+020035
026035-025+022035
024035-025+027035 020035-025+025035
027035-025
027035-022
025-024035+026
023035-025
023035-027
023035-021
022+023035 027035-022
sp
026035-027+022035
024035-026+027035
020035-025+021035
022035+020035 025-022035+022035
025035-027+020035 020035-027+021035
027-025035+025
021+027035 023035-021
023035-025+027035
022-026035+024035
020035-026+023035
026+024035
025-020035+026035
020035+025
020035+026 020035+025
020035+027
020035+022 020035+027
020035+023 020035+027
025035-025+026035
025-027035+027035
021-027035+021
026+025035
025-020035 025-020035+026035
020035-020035+025
020035-020035+026 020035-020035+025
020035-020035+027 020035-020035+025
020035-020035+021 020035-020035+025
020035-020035+022 020035-020035+025
020035-020035+022 020035-020035+025
020-020035
026-022035+026 025-022035+022035
026-022035+023 025-022035+022035
022-026035+025
025035-022+027035
025-020035+025
025-020035+027
025-026035+020035 022-026035+024035
024035-025+020035
020035-025 023035-025
025035-026+027035 026035-026+020035
020035-025+020035 024035-025+020035
024035-021+025035
027035

我认为可行的代码是使用 bytearray() 将文本转换为字节数组,然后将其解码为 utf-8 并将其写入目标文件。 octal_to_text.py

"""
Convert file contents from Octal to text

"""

with open('i_file','r') as tl, open('o_file','w+') as tk:
    for line in tl.readlines():
        line = (line.strip())
        br = bytearray(line)
        tk.write("{}\n".format(br.decode('utf-8')))

然而,在上面的代码中,生成的输出文件与输入文件相同。 bytearray 似乎没有做任何事情。我到底做错了什么?你能提供一个 python2.7 的解决方案吗?

注意 输出文件应包含如下所示的字符

ಅ
ಆ
ಇ
ಈ
ಉ
ಊ
ಋ
ಎ
ಏ
ಐ
ಒ
ಓ
ಔ
ಕ್
ಖ್
ಗ್
ಘ್
ಚ್
ಛ್
ಜ್
ಝ್
ಟ್
ಠ್
ಡ್
ಢ್
ಣ್

Octal 编码字符串的 print 语句仅在 python 解释器工作时将 Octal 解码为非英语符号。

因此,一个简单的解决方法是执行以下步骤:

  1. 复制待解码文件的内容
  2. 打开python解释器并将文件内容赋给一个 多行字符串中的变量。
  3. 打印变量
  4. 将内容复制到新文件