gpt4 book ai didi

Python - 将文件导入 NamedTuple

转载 作者:太空狗 更新时间:2023-10-30 00:23:45 31 4
gpt4 key购买 nike

最近我有一个关于数据类型的问题。
从那时起,我一直在尝试使用 NamedTuples(或多或少取得了成功)。

我目前的问题:
- 如何将行从文件导入到新元组,
- 如何将以空格/制表符(/无论什么)分隔的值导入元组的给定部分?

喜欢:

Monday  8:00    10:00   ETR_28135   lh1n1522    Computer science    1     
Tuesday 12:00 14:00 ETR_28134 lh1n1544 Geography EA 1

第一行应该进入元组[0]。第一个数据:tuple[0].day;第二:元组[0].start; ..等等。
当新行开始时(即两个制表符 (\t),开始一个新的元组,如元组 [1])。

我用它来分离数据:

with open(Filename) as f:
for line in f:
rawData = line.strip().split('\t')

剩下的逻辑仍然缺失(元组的填充)。

(我知道。这个问题和最近的一个问题真的很低级。但是,希望这些也能帮助其他人。如果你觉得这不是一个真正的问题,太简单而不是一个问题等等,只是投票关闭。感谢您的理解。)

最佳答案

这样的数据库文件被称为逗号分隔值,即使它们实际上并没有被逗号分隔。 Python 有一个名为 csv 的方便库,可让您轻松读取此类文件

这里是一个稍微修改过的 example from the docs

csv.register_dialect('mycsv', delimiter='\t', quoting=csv.QUOTE_NONE)
with open(filename, 'rb') as f:
reader = csv.reader(f, 'mycsv')

通常你一次只写一行。如果您需要将整个文件放在一个元组中,那么:

t = tuple(reader)

编辑

如果您需要按名称访问字段,您可以使用 cvs.DictReader ,但我不知道它究竟是如何工作的,我无法在这里进行测试。

编辑2

看什么namedtuples是的,我有点落伍了。有一个很好的例子说明 namedtuple 如何与 csv 模块一起工作:

EmployeeRecord = namedtuple('EmployeeRecord', 'name, age, title, department, paygrade')

import csv
for line in csv.reader(open("employees.csv", "rb")):
emp = EmployeeRecord._make(line)
print emp.name, emp.title

关于Python - 将文件导入 NamedTuple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5830197/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com