GithubHelp home page GithubHelp logo

openpack's Introduction

Automated Tests Code style: Black

openpack provides base functionality for working with the Open Office XML (OOXML) format in Python.

Introduction

Openpack is a base library for OpenXML documents. It is used by the paradocx and XlsXcessive.

Utilities

Openpack includes two utilities for working with OpenXML documents from the command-line, part-edit and zip-listdir.

These commands are additionally exposed as modules and may be invoked using python -m, e.g. python -m openpack.part-edit.

zip-listdir

zip-listdir isn't specific to OpenXML, and will work on any zip file. Since OpenXML documents are themselves zip files, however, it is useful to have when working with OpenXML:

> zip-listdir ../paradocx/data.docx
  [Content_Types].xml
d _rels
d word

zip-listdir lists the files and directories and can be used to list sub-directories as well:

> zip-listdir ../paradocx/data.docx/word
d _rels
  document.xml

part-edit

While zip-listdir enables inspecting the structure of the zip content of an OpenXML document, part-edit facilitates editing the various parts of those documents using the client's text editor. For example, to edit the word/document.xml as found in data.docx from the previous example, simply invoke part-edit:

> part-edit ../paradocx/data.docx/word/document.xml

The program will attempt to use the default text editor to edit the file. If the default editor is not sufficient, the user may specify an editor by setting either XML_EDITOR or EDITOR environment variables.

part-edit will parse the zip file, locate the content within the zip file, extract that content to a temporary file, and then open that content in an editor. After the editor is closed, if the file was changed, the zip file will be updated with the new content.

The user may pass the optional --reformat-xml, in which case the XML will be pretty-formatted for easier human readability.

openpack's People

Contributors

dowski avatar hugovk avatar jaraco avatar johnthagen avatar layday avatar skriems avatar vfazio avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.