【问题标题】:Search in a TXT file containing tab-separated values in Python在 Python 中搜索包含制表符分隔值的 TXT 文件
【发布时间】:2020-05-05 20:37:28
【问题描述】:

我有一个 TXT 文件,其中包含以下形式的制表符分隔值(3 列):

type        color  name
fruit       red    apple
fruit       red    grape
vegetable   green  cucumber

我正在寻找一种方法来读取该文件并在该数据集中执行“选择”,就像在 SQL 表中选择一样(类似这样)

SELECT name FROM data_set WHERE color='red' and type='fruit'

我知道应该像这样读取和迭代该文件:

f = open('file_name.txt', 'r')
for line in f:

但是我不确定在给定前两列的情况下返回第三列的值的查找部分的最有效方法是什么。

我使用的是 Python 2.7。任何帮助将不胜感激!

【问题讨论】:

    标签: python python-2.7


    【解决方案1】:

    这里有一种方法可以让你做类似的事情。这不是你想要的,但它确实有效:

    data = {}
    
    with open('file_name.txt', 'r') as f:
        lines = [line.rstrip() for line in f]
        lines.pop(0)
    
    for line in lines:
        x = line.split('\t')
        try:
            data[x[0]][x[1]].append(x[2])
        except KeyError:
            data.update({x[0]: {x[1]: []}})
            data[x[0]][x[1]].append(x[2])
    
    print(data['fruit']['red'])
    -> ['apple', 'grape']
    
    print(data['vegetable']['green'])
    -> ['cucumber']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 2013-06-04
      • 1970-01-01
      • 2011-05-12
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多