Python 读取制表符分隔的文件,并将每列分配给单独的变量

Python 读取制表符分隔的文件,并将每列分配给单独的变量,python,dictionary,compiler-errors,Python,Dictionary,Compiler Errors,下面的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,

下面的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”列数据的词典!不知道如何解决这个问题

错误消息:


感谢您的帮助,

Python关心缩进(年度最佳轻描淡写!)。您需要再次缩进“for in”代码块,使其成为“in”块的一部分。

您不会收到错误消息

with open("Table.tsv") as samplefile:
..
dic1[A] = samplefile # storing a specific variable (column) into a dictionary 
print (dic1[A])
您打开一个文件,将文件句柄放入字典,然后取出并打印它。Python打印它,您将看到一个闭合文件句柄的文本表示形式。

在下面的一行中

dic1[A] = samplefile 
您正在将名为
samplefile
的文件对象分配给字典,并使用变量“A”的内容作为键值。 错误消息不是错误消息,它是文件对象的python字符串表示形式。 文件对象已关闭,因为您将
上下文一起保留

你必须像这样把变量分配给字典

dic1['a'] = A
也许你想重读一些关于词典如何工作的信息。请看这里:
其他人已经解释了您看到的问题,但是编写代码的更好方法是使用

以上假设csv文件的第一行包含列名。否则,将列名列表传递给
DictReader

reader = csv.DictReader(samplefile, ['A', 'B', 'C', 'D'], delimiter="\t")

samplefile
是一个文件对象。将其分配给
dic1[A]
。打印时它仍然是一个文件对象,这并不奇怪。谢谢!你的反馈非常有用。
reader = csv.DictReader(samplefile, ['A', 'B', 'C', 'D'], delimiter="\t")