python - 从文件中读取逗号分隔的值而不使用循环?
问题描述
如果文本文件的每一行看起来像这样
Carlos Guestrin,CIS 41A,4.5,A,BUS 55,5,A,BUS 18,5,B+,HUMI 16,4,A-
如何在不使用循环的情况下将所有数据读入数据结构?我正在考虑将名称(Carlos)作为实例变量,并且仅将名称之后的值存储到数据结构中,即元组字典(以类名作为键值)
解决方案
您可以使用 csv 库:
import csv
with open('file.csv') as f:
data = list(csv.reader(f))
数据成为列表列表,每个列表都是文件中的一行。
编辑:
要将其转换为元组字典,您可以使用字典理解进一步处理它:
data = {i[1]: {"Name": i[0], "Grades": tuple(i[1:])} for i in data}
如果您想删除第一行,只需切片数据 ( data = data[1:]
)
推荐阅读
- robotframework - 使用 SeleniumLibrary/robotframework 的 ElementFinder(ContextAware) 类实例化?
- c++ - 如何在 C++ 中的 OpenCV 4.0.0 上动态分配 cv::Mat 元素向量后释放内存?
- opennms - OpenNMS 将陷阱识别为 uei.opennms.org/generic/traps/EnterpriseDefault
- python - 调用assume_role 会导致“InvalidClientTokenId”错误
- kubernetes - Minikube NodeUnderDiskPressure 问题
- java - Spring AOP 何时使用 CGLIB 代理?
- c++ - 每次在不同的 malloc/memcpy 行出现“访问冲突读取/写入位置”异常
- matplotlib - 如何删除嵌入在 PyQt5 中的 Matplotlib 图上的旧图?
- git - Git 获取中断和损坏的存储库
- javascript - React 中的条件渲染 - 卡在加载 DIV