使用 Python 访问 VSAM 文件?

问题描述

是否可以在 ZOS 中使用 Python 3.8 访问大型机的 VSAM 数据集?我尝试在 python 2.7 中访问 vsam 简单文件,就像 ps 文件一样。这似乎奏效了。当我在 3.8 中尝试相同时。它甚至无法读取简单的 PS 文件数据。 代码

import codecs                                      
f = open("//'VSAM file name'",'r')  
f1=codecs.getreader('cp1047_oe')(f)                
for line in f1:                                    
    print line,print (f1)                                         
print ("Read record is :",f)                      
f.close()   

                                   

解决方法

为了尝试使用数据集,有一个有用的博客条目概述了该过程: Using IBM Open Enterprise Python for z/OS and ZOAU to Work With Datasets

您需要有 zoau 二进制文件以及必须安装 zoautil_py python 包。这些说明位于 KC 部分的 install 部分。

注意:从博客发布时起,我的版本发生了变化。我正在使用 zoau 版本 V1.1.0 并且与博客相比有一些 API 调用更改,例如zoautil_py.Datasets 现在是 zoautil_py.datasets。最好使用可用的最新稳定版本。