python - 读取 TXT 或 CSV 或 XLS 或 XLSX 的第一列
问题描述
我需要将一个文档的第一列解析成一个列表['item1', 'item2', ...]
,这个文档可以是:
- TXT 文档(以换行符分隔的项目)
- 一个单列的 CSV 文档(类似于 TXT 文档)
- 包含许多列的 CSV,由
;
- 包含许多列的 CSV,由
,
- 具有一列或多列的 XLS
- 具有一列或多列的 XLSX
我正准备用很多情况对其进行编码:
ext = os.path.splitext(f)[1].lower()
if ext == '.txt':
with open(f, 'r') as f:
L = f.read().splitlines()
if ext == '.csv':
reader = csv.reader(...)
...
if ext == '.xls':
...
但是Python 中是否有一个通用的高级工具可以直接完成所有这些工作?
解决方案
pyexcel库是一个高级抽象,需要使用一致的接口处理不同格式的数据文件:
pyexcel提供了一个应用程序编程接口来读取、操作和写入不同 excel 格式的数据。该库使涉及 excel 文件的信息处理成为一项令人愉快的任务。excel文件中的数据可以用最少的代码转换成数组或字典,反之亦然。该库专注于使用 excel 文件作为存储媒体的数据处理,因此字体、颜色和图表没有也不会被考虑。
一个简单的示例用法如下所示:
>>> import pyexcel as pe
>>> records = pe.iget_records(file_name="your_file.xls")
>>> for record in records:
... print("%s is aged at %d" % (record['Name'], record['Age']))
推荐阅读
- sql-server - 基于SELECT查询在sql server中创建表的正确语法是什么
- node.js - 无法启动下载
- flutter - 如何在颤动的 showModalBottomSheet 内从 CupertinoTimerPicker 返回数据?
- c# - 表拆分 EF Core
- android - 如何在 MPandroidCharts 中调整 X-label 文本大小
- aem - 如何将数据从一个组件传递到 AEM 中的另一个组件
- visual-studio-code - 如何获取键绑定的命令 ID
- scala - 如何在scala中使用序列列表过滤RDD
- excel-formula - 处理列表 DataValidation 公式中的错误
- c++ - For循环中的while循环