У нас есть много файлов мэйнфреймов в формате EBCDIC. Есть ли в Python способ проанализировать или конвертировать файл мэйнфрейма в файл csv или текстовый файл? - PullRequest
1 голос
/ 12 июня 2019

Мне нужно прочитать записи из файла мэйнфрейма и применить некоторые фильтры к значениям записи. Поэтому я ищу решение для преобразования файла мэйнфрейма в csv или текстовую или книгу Excel, чтобы я мог легко выполнять операции с файлом.

Мне также нужно проверить количество записей.

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

Я недавно обрабатывал бумажный журнал и хотел разбить запись на части. Я использовал Python, чтобы сделать это, поскольку запись была записью с фиксированной позицией с различными элементами данных в фиксированных местах записи. В моем случае вся запись была текстовой, но можно легко применить эту технику для преобразования различных столбцов в соответствующий тип.

Вот пример записи. Я добавил несколько строк, чтобы помочь визуализировать смещения данных, используемые в коде для доступа к данным:

          1         2         3         4         5         6         7         8         9
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
N 4000000 PROD     19114 06:27:04.07 JOB02679 00000090  $HASP373 PWUB02#C STARTED - INIT 17

Обратите внимание на фиксированные позиции столбцов для различных элементов и то, как на них ссылается позиция. Используя эту технику, вы можете обработать файл и создать CSV с выводом, который вы хотите обработать в Excel.

Для моего случая я использовал Python 3.

def processBaseMessage(self, message):    
        self.command  = message[1]
        self.routing  = list(message[2:9])
        self.routingCodes = []                       # These are routing codes extracted from the system log.
        self.sysname  = message[10:18]
        self.date     = message[19:24]
        self.time     = message[25:36]
        self.ident    = message[37:45]
        self.msgflags = message[46:54]
        self.msg      = [ message[56:] ]

Затем вы можете отформатировать форму, необходимую для дальнейшей обработки. Есть и другие способы обработки данных мэйнфреймов, но в зависимости от вопроса этот подход должен соответствовать вашим потребностям, но есть много вариантов.

0 голосов
/ 13 июня 2019

Кто сказал что-нибудь о EBCDIC?OP не сделал.

Если равен всему тексту, тогда возможен FTP с переводом из EBCDIC в ASCII, в том числе в Python.

Если нет, то либо:

  • Извлечение и преобразование в CSV должно происходить в z / OS.Возможно, с программой COBOL.Затем CSV может быть обработан по FTP с помощью

или

  • Данные должны быть BINARY с FTP, а затем проанализированы и переведены биты.

Но, как это часто бывает, нам нужна дополнительная информация.

...