Python - 将文件中的八进制文本转换为非英文文本
Python - Convert Octal to non-English Text from file
我正在尝试将以 八进制 编码的非英语文件转换回其原始格式并将其存储在另一个文件中。这些文件包括:
- i_file : 带有八进制编码文本的输入原始文件
- o_file :应该包含卡纳达语(所讨论的非英语)文本的输出目标文件。
- octal_to_text.py : python 程序应该在输入文件中获取八进制文本并在目标文件中生成相应的非英语文本。
样本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 解码为非英语符号。
因此,一个简单的解决方法是执行以下步骤:
- 复制待解码文件的内容
- 打开python解释器并将文件内容赋给一个
多行字符串中的变量。
- 打印变量
- 将内容复制到新文件
我正在尝试将以 八进制 编码的非英语文件转换回其原始格式并将其存储在另一个文件中。这些文件包括:
- i_file : 带有八进制编码文本的输入原始文件
- o_file :应该包含卡纳达语(所讨论的非英语)文本的输出目标文件。
- octal_to_text.py : python 程序应该在输入文件中获取八进制文本并在目标文件中生成相应的非英语文本。
样本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 解码为非英语符号。
因此,一个简单的解决方法是执行以下步骤:
- 复制待解码文件的内容
- 打开python解释器并将文件内容赋给一个 多行字符串中的变量。
- 打印变量
- 将内容复制到新文件