У меня есть файл csv с такой структурой:
Name: Tags: col4 col4 col5 col6 col7
T1 G1 G2 G3 G4 G5
T2 G1 G2
T3 G1 G2 G3
T4 G1 G2 G3 G4 G5 G6
T5 G1 G2 G3 G4
В реальном файле 279 столбцов, и все строки имеют разную длину. Моя цель — получить каждое имя в качестве ключа, а затем соответствующие теги в виде списка значений в словаре Python.
Мой текущий код таков:
import csv
my_dict = {}
with open('infile.csv') as file:
reader = csv.reader(file)
for row in reader:
my_dict[row[0]] = row[1:]
print(my_dict)
Это работает, но пустые ячейки включены как значения в словарь, например;
{T1: ['G1', 'G2', 'G3', 'G4', 'G5', ''], T2: ['G1', 'G2', '', '', '', ''] etc.
Принимая во внимание, что моя цель состоит в том, чтобы получить это:
{T1: ['G1', 'G2', 'G3', 'G4', 'G5'], T2: ['G1', 'G2'] etc.
Я не могу найти какой-либо вариант для csv.reader, который пропускает пустые ячейки. Я пробовал csv.DictReader (очевидно, это автоматически игнорирует пустые ячейки?), но он не разрешает срезы, и я не могу назвать и указать 279 столбцов.
Я знаю, что здесь есть похожие вопросы, но ни один из них не похож на то, что я ищу с точки зрения того, как я хочу, чтобы файл читался.
Я застрял на этом некоторое время, поэтому любая помощь будет высоко оценена.