我有一个EBCDIC编码的大型机文件,需要将其转换为ASCII格式。我可以使用哪些库/工具来做到这一点。我最熟悉的是Python。
我收到的文件中有一本食谱,可以用来解析文件(部分内容如下)。
类型:"C"、"p"one_answers"B"是什么意思?我猜C=字符,B=字节,P=压缩数?
1:----------------------------------------------------------------------------------------------------------------------------------:
:LAYOUT NAME: B224E DATE: 02/20/14 PAGE 7 OF 14:
: ------- -------- --- ---:
:COBOL: PAN-NAME: NONE COPYLIB-NAME: RECB224E :
: -------------------- -------------------- :
:BAL : PAN-NAME: NONE COPYLIB-NAME: NONE :
:------------------------------------------------------------------------------:
:TYPE OF RECORD: EXTENDED SORT KEY AREA - SEGMENT "A" (OPTIONAL) :
:------------------------------------------------------------------------------:
:POSITION : LENGTH : TYPE : DESCRIPTION :
:----------:--------:------:---------------------------------------------------:
: : : : :
: : : : :
: : : : :
:001 - 001 : 1 : C : SEGMENT IDENTIFIER - "A" :
: : : : :
:002 - 003 : 2 : P : SEGMENT LENGTH :
: : : : :
:004 - ??? : ??? : C : EXTENDED SORT KEY AREA :
: : : : :
查看codecs
模块。从标准编码表来看,EBCDIC也被称为cp-500
。以下内容应该有效:
import codecs
with open("EBCDIC.txt", "rb") as ebcdic:
ascii_txt = codecs.decode(ebcdic.read(), "cp500")
print(ascii_txt)
正如mpez0在评论中所指出的,如果您使用的是Python3,您可以将代码压缩为:
with open("EBCDIC.txt", "rt", "cp500") as ebcdic:
print(ebcdic.read())
由于手头没有EBCDIC文件,我无法对此进行测试,但它应该足以让您入门。