【发布时间】:2018-07-10 22:52:56
【问题描述】:
我有一个具有这种结构的 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 列。
我知道这里有类似的问题,但就我希望如何读取文件而言,它们似乎都不是我想要的。
我已经坚持了一段时间,所以任何帮助将不胜感激。
【问题讨论】:
标签: python python-3.x csv dictionary skip