Frictionless supports ODS parsing.
pip install frictionless[ods]
pip install 'frictionless[ods]' # for zsh shell
You can read this format using Package/Resource
, for example:
from pprint import pprint
from frictionless import Resource
resource = Resource(path='table.ods')
pprint(resource.read_rows())
[{'id': 1, 'name': 'english'}, {'id': 2, 'name': '中国人'}]
The same is actual for writing:
from pprint import pprint
from frictionless import Resource
source = Resource(data=[['id', 'name'], [1, 'english'], [2, 'german']])
target = source.write('table-output.ods')
pprint(target)
There is a dialect to configure how Frictionless read and write files in this format. For example:
from frictionless import Resource, formats
resource = Resource(data=[['id', 'name'], [1, 'english'], [2, 'german']])
resource.write('table-output-sheet.ods', control=formats.OdsControl(sheet='My Table'))
Ods control representation. Control class to set params for ODS reader/writer.
(*, name: Optional[str] = None, title: Optional[str] = None, description: Optional[str] = None, sheet: Union[str, int] = 1) -> None
Name or index of the sheet to read/write.
Union[str, int]