我有一个EBCDIC编码的大型机文件,我需要将其转换为ASCII格式。我可以使用哪些库/工具来执行此操作。我最熟悉Python。
我收到的文件中有一本食谱,可以用来解析文件(部分内容在下面)。
什么类型:' C',' P'和' 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 :
: : : : :
答案 0 :(得分:5)
查看codecs
模块。从standard encodings table开始,看起来EBCDIC也称为cp-500
。以下内容应该有效:
import codecs
with open("EBCDIC.txt", "rb") as ebcdic:
ascii_txt = codecs.decode(ebcdic, "cp500")
print(ascii_txt)
正如mpez0在评论中指出的那样,如果您使用的是Python 3,则可以将代码浓缩为:
with open("EBCDIC.txt", "rt", "cp500") as ebcdic:
print(ebcdic.read())
没有方便的EBCDIC文件,我无法对此进行测试,但它应该足以让您入门。