如何通过 python 在笔记本电脑上打开 .ebc (ebcdic) 文件?
How can I open .ebc (ebcdic) file on my laptop via python?
UPD I have opened file and found this format. How I can decode 00000000....
我需要在 Python 上打开 .ebc 文件。该文件的大小约为 12GB。
我为此操作使用了大量工具和 Python 库,但很明显我做错了。我找不到合适的编码。
由于文件的大小,我试图逐行读取文件。
Python lists EBCDIC 的两个代码页,"cp424"(希伯来语)和 "cp500"(西方脚本)。
这样使用:
with open(path, encoding='cp500') as f:
for line in f:
# process one line of text
注意:如果文件大小为 12G,您将要避免调用 f.read()
或 f.readlines()
,因为两者都会将整个文件读入内存。
在笔记本电脑上,这可能会冻结您的系统。
相反,使用 Python 的默认行迭代逐行迭代内容。
如果您只想使用现代编码重新编码文件,例如。非常流行的 UTF-8,使用以下模式:
with open(in_path, encoding='cp500') as src, open(out_path, 'w', encoding='utf8') as dest:
dest.writelines(src)
当它逐行读取、转换和写入内容时,这应该以低内存占用对文件进行重新编码。
UPD I have opened file and found this format. How I can decode 00000000....
我需要在 Python 上打开 .ebc 文件。该文件的大小约为 12GB。
我为此操作使用了大量工具和 Python 库,但很明显我做错了。我找不到合适的编码。
由于文件的大小,我试图逐行读取文件。
Python lists EBCDIC 的两个代码页,"cp424"(希伯来语)和 "cp500"(西方脚本)。
这样使用:
with open(path, encoding='cp500') as f:
for line in f:
# process one line of text
注意:如果文件大小为 12G,您将要避免调用 f.read()
或 f.readlines()
,因为两者都会将整个文件读入内存。
在笔记本电脑上,这可能会冻结您的系统。
相反,使用 Python 的默认行迭代逐行迭代内容。
如果您只想使用现代编码重新编码文件,例如。非常流行的 UTF-8,使用以下模式:
with open(in_path, encoding='cp500') as src, open(out_path, 'w', encoding='utf8') as dest:
dest.writelines(src)
当它逐行读取、转换和写入内容时,这应该以低内存占用对文件进行重新编码。