Python 读取作为矩阵的文本文件
我有一个矩阵格式的文本文件,我想读这个文件,想创建一个树状图,但我有一个错误 这是我的文本文件的内容: Kaynak:YSK 阿达拉尔 伊斯坦布尔位置Adalar.svg d•t 托普兰·塞门·萨伊西托普兰·桑迪克·萨伊西 12369 45 阿达利克索努克拉 基斯。第二部分我是说我是奥拉尼 CHP Cumhuriyet Halk Partisi Atilla Aytac 5.207%50.1 AK Parti Adalet ve Kalkinma Parti Coskun Ozden 4.381%42.1% 错误代码: colnames=行[0]。strip().split(“\t”)[1:] 索引器:列表索引超出范围Python 读取作为矩阵的文本文件,python,matrix,cluster-computing,Python,Matrix,Cluster Computing,我有一个矩阵格式的文本文件,我想读这个文件,想创建一个树状图,但我有一个错误 这是我的文本文件的内容: Kaynak:YSK 阿达拉尔 伊斯坦布尔位置Adalar.svg d•t 托普兰·塞门·萨伊西托普兰·桑迪克·萨伊西 12369 45 阿达利克索努克拉 基斯。第二部分我是说我是奥拉尼 CHP Cumhuriyet Halk Partisi Atilla Aytac 5.207%50.1 AK Parti Adalet ve Kalkinma Parti Coskun Ozden 4.381
错误是因为第一行中没有制表符,并且该行根本没有被拆分。或者,如果第一个字符是制表符,则使用.strip()命令将其删除 您可以在显示特殊字符的同时打印该行,以检查是否存在制表符:
print repr(lines[0])
谢谢你,伙计,但是如果问题是我该怎么做才能解决呢?我对Pyton是个新手。很难说有什么比“不要假设不真实的事情”更具体的了。如果您真的要求每行包含一个选项卡,可以编辑输入文件,使其满足此要求。如果没有,你将不得不重新表述你的程序的逻辑来表达你真正的意思。
def readfile(filename):
lines=[line for line in file(filename)]
# First line is the column titles
colnames=lines[0].strip().split("\t")[1:]
rownames=[]
data=[]
for line in lines[1:]:
p=line.split('\t')
# First column in each row is the rowname
rownames.append(p[0])
# The data for this row is the remainder of the row
data.append([float(x) for x in p[1:]])
return rownames,colnames,data
print repr(lines[0])