[英]spreadsheet to python dictionary conversion
我正在研究 python,我想讀取一個 *.ods 文件並將其轉換為 python 字典。
鍵將是第一列值,值將是第二列值。
我該怎么做? 我使用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。)另外請注意:您不能已經在運行任何Libre/Open/Star office 實例,包括快速入門。
更新:LibreOffice 的早期版本使用 --headless 而不是 --without-x。
您可以先將 .ODS 轉換為 csv 嗎? 然后使用csv模塊使用 Python 解析 CSV 非常簡單。
檢查py-odftools 。
下面鏈接中的這種方法非常適合我將 *.ods 文件讀取/加載到 python 數據幀中。 您可以選擇按工作sheet index
或工作sheet name
加載。
從這個項目中窺視我的解決方案: https ://pypi.org/project/pandas-ods-reader/
在繼續之前,您可能首先需要安裝這些依賴項: ezodf,lxml
和pandas
。
pip install pandas_ods_reader
from pandas_ods_reader import read_ods
然后:
filepath = "path/to/your/file.ods"
根據索引加載工作表(基於索引 1)
sheet_idx = 1
df = read_ods(filepath, sheet_idx)
根據工作表名稱加載工作表
sheet_name = "sales_year_1"
df = read_ods(filepath, sheet_name)
完畢。
Linux Journal 上有一篇很棒的文章如何在 python 中閱讀 ods。 Ods 文件是一個包含 xml 文件的 juz zip 文件。 您可以解析 xml 文件來讀取所有單元格。
使用Odio ,您可以:
import odio
with open('test.ods', 'rb') as f:
sheet = odio.parse_spreadsheet(f)
table = sheet.tables[0]
print(table.name)
for row in table.rows:
print(row)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.