以下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