Поиск в файле TXT, содержащем значения, разделенные табуляцией, в Python - PullRequest
0 голосов
/ 05 мая 2020

У меня есть файл 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. Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 06 мая 2020

Вот как можно сделать что-то подобное. Это не совсем то, что вам нужно, но оно работает:

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']
...