以下python代码读取一个制表符分隔的文件,其中包含多列。我已经将每个列存储在一个单独的变量中,然后尝试将该列存储到字典中并打印出字典的值。

import csv
dic1={}
dic2={}
with open("Table.tsv") as samplefile:
    reader = csv.reader(samplefile, delimiter="\t")
    columns = zip(*reader)
    for column in columns:
        A, B, C, D = columns #store the columns into separate variables

dic1[A] = samplefile # storing a specific variable (column) into a dictionary
print (dic1[A])

问题:我无法打印出包含“A”列数据的词典!不确定如何解决此问题。

错误消息: <closed file 'Table.tsv', mode 'r' at 0x7fef50ba0030>
感谢您的帮助,

最佳答案

在下一行

dic1[A] = samplefile

您正在将名为samplefile的文件对象分配给字典,并使用变量“A”的内容作为键值。
而且您的错误消息不是错误消息,它是python的文件对象的字符串表示形式。
由于您离开了with上下文,因此文件对象已关闭。

您实际上必须像这样将变量分配给字典。
dic1['a'] = A

也许您想重新阅读一些有关字典工作方式的信息。在这里看看:
http://learnpythonthehardway.org/book/ex39.html

09-26 11:07