Skip to main content

pycobol2csv

pycobol2csv is a Python library to convert COBOL ebcdic file to CSV format. The package is built to cater for advanced features in COBOL copybooks such as OCCURES x TIMES, BINARY, COMP.

The CSV file is RDBMS friendly and all headers are ready to be used as database column names. CSV conversion is controlled by config file in csv_config.json

  • Update in version 1.0.6

Recently Microsoft upgraded Spark in Synapse from version 3.2 to 3.4, which upgraded the included Python version from 3.8 to 3.10, which is a version with known issues on csv writer.

Any users on Python 3.10 should upgrade to pycobol2csv 1.0.6 and above ASAP, otherwise there might get an error _csv.Error: need to escape, but no escapechar set.

Other Python versions (such as 3.8, 3.11) are safe so far.

  • Update in version 1.0.5

Added more enhancements for the outdated REDEFINE and PIC syntax for a new client.

Install the python module:

pip install pycobol2csv

To use the module:

from pycobol2csv import convert_cobol_file, decode_copybook_file

row_length, cobol_struc = decode_copybook_file(copybook_file)

convert_cobol_file(copybook_file, data_file, output_file, config_file, codepage, debug=False)

  • copybook_file: copybook filename
  • data_file: data filename
  • output_file: output csv filename
  • config_file: csv configuration filename, refer to csv_config.json
  • codepage: codepage for edibic, refer to https://docs.python.org/3.7/library/codecs.html#standard-encodings for details
  • debug: enable for more debug information, default is OFF

test

2 sets of test data have been created from scratch. Each set includes a copybook and an EBCDIC data file.

To test:

python convert_cobol_test_main.py --copybook [COPYBOOK_FILE] --data [DATA_FILE] --output [CSV_FILE]

known issues and limitations

  • Be aware of the resources available in your runtime environment and make sure the Cobol file size is not beyond the limit or cause any performance issue.

To handle large Cobol files, you can split the files into smaller chunks and then process the chunks in parallel. Please refer to the medium post for details.

Metadata

Release files for pycobol2csv 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for pycobol2csv 1.0.6
File Interpreter ABI Platform
pycobol2csv-1.0.6-py3-none-any.whl Python 3 none any Details

Release files / pycobol2csv-1.0.6-py3-none-any.whl

Download URL pycobol2csv-1.0.6-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b8d336c752245dbd6fc85252ba52cd04ed2af83cc61a04a7952722521211be60
BLAKE2b-256 checksum
How to use checksums
df8664fbaf8ab886e2e0f8eaccfb38f7f36926fcab9c1720d6236496e44e5f7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

1.0.6 This release

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page