【问题标题】:Tab-delimited file into dictionary (python)制表符分隔的文件到字典中(python)
【发布时间】:2011-03-10 07:49:24
【问题描述】:

我有一个制表符分隔文件

如何将此文件输入字典?

【问题讨论】:

  • 为什么要为每行单独的字典?
  • 在后面对它们进行相应的排序。我想我对 python 很陌生......
  • @Mark,感谢您的建议。我会继续听从你的建议。
  • 好吧,不要介意我之前的评论。事实证明,有一个类完全符合您的要求。

标签: python dictionary


【解决方案1】:
import csv

with open(filename) as file_object:
    # skip the first two lines
    file_object.next()
    file_object.next()
    list_of_dicts = list(csv.DictReader(file_object, dialect='excel-tab'))

# list_of_dicts now will contain a list of dictionaries extracted from the file

【讨论】:

  • 您可以直接调用 list 并将 DictReader 作为参数,而不是迭代和追加。
  • @notrockstar @Mahmoud Abdelkader “如果 csvfile 是文件对象,则必须在不同的平台上使用 'b' 标志打开它。” (@987654321 @)
  • notrockstar,根据定义,字典的排序将是无序的。如果出于某种原因,您需要一本有序字典,请告诉我,但请创建另一个问题。
  • @ Mahmoud Abdelkader,我确实需要文件中的确切顺序。无论如何我可以修改代码以按确切的键顺序读取它而不创建新问题吗? (我知道我可以稍后使用 lambda 函数进行排序)
【解决方案2】:

您可以将csv 模块与它的DictReader class 一起使用。

【讨论】:

  • 还有一个合适的Dialect
  • @notrockstar:如果您确定前两行将始终是 cmets,您可以在创建 DictReader 之前对文件对象调用两次 readline
猜你喜欢
  • 2013-01-21
  • 1970-01-01
  • 2019-02-21
  • 2019-06-30
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多