Python 读取制表符分隔的文件,并将每列分配给单独的变量
下面的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,
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")