私は python で作業しており、*.ods ファイルを読み取って python 辞書に変換したいと考えています。
キーは最初の列の値になり、値は 2 番目の列の値になります。
どうすればいいですか?使用xlrd
しましたが、*.ods ファイルを読み取れません。
いくつかの利用可能なオプション:
pyexcel-ods : " ods 形式のデータを読み取り、操作、および書き込むためのラッパー ライブラリ。 " 次の方法でインストールできますpip install pyexcel-ods
。私はこのパッケージを使用しており、積極的にメンテナンスされているため、個人的にこのパッケージをお勧めします。
py-odftools : " ... ISO 標準 OpenDocument 形式のファイルを分析、変換、および作成するためのツールのコレクション。 " このプロジェクトは 2007 年後半から更新されていません。放棄されたようです。
ezodf : " OpenDocumentFormat ファイルを作成/操作するための Python パッケージ。 " 経由でインストール可能pip install ezodf
。このパッケージの重大な問題については、以下のコメントの警告を参照してください。
ユーザーに [ファイル] > [名前を付けて保存] を求めることもできますが (おそらくご存じのとおり)、これは状況によっては役に立たない場合があります。
libre/openoffice サービスを使用する方がおそらく簡単です。X11をインストールしたり実行したりする必要なく、サーバー上で完全にヘッドレスで実行できるため、クリーンなネイティブ変換が可能になります.
libreoffice --without-x --convert-to csv filename.ods
詳細については、libreoffice --help (または openoffice --help) を確認してください。これは、os.system()、subprocess.*() などでラップすることもできます (注: Windows では -convert-to を使用してください) 。クイックスターターを含む。
更新: 以前のバージョンの LibreOffice では、--without-x の代わりに --headless が使用されていました。
最初に .ODS を csv に変換できますか? 次に、 csvモジュールを使用すると、Python を使用して CSV を解析するのが非常に簡単になります。
py-odftools を確認してください。
Linux Journalに、Pythonでodsを読み取る方法に関するすばらしい記事があります。Odsファイルは、内部にxmlファイルを含むjuzzipファイルです。xmlファイルを解析してすべてのセルを読み取ることができます。