我的程序应该从用户那里获取输入并读取名称为input的文件。读取文件被保存到一个名为portfolio的字典中,从那里我要做的就是将组合中的每一行分类为键和值。
这是我的代码。
portfolio = {}
portfolio = file_read() #Reads the file through a function
if file_empty(portfolio) == True or None: #nevermind this, it works
print "The file was not found."
else:
print "The file has successfully been loaded"
for line in portfolio:
elements = line.strip().split(",") #separate lists by comma
print elements[0] #using this to check
print elements[1] #if it works at all
所有这一切都是打印第一行中的第一个字母,即S.显然元素[1]应该是第二个字母,但索引超出范围,请告诉我可能出错的地方。
谢谢。
答案 0 :(得分:0)
看起来file_read()
正在将文件读入字符串。
然后for line in portfolio:
正在遍历该字符串中的每个字符。
然后elements = line.strip().split(",")
将为您提供一个包含一个字符的列表,因此尝试获取elements[1]
超出了列表的范围。
如果要将文件的全部内容读入名为portfolio
的字符串,可以使用
for line in porfolio.split('\n'):
...
但是,更常用的方法是迭代文件中的行
with open(filename,'r') as inputfile:
for line in inputfile:
....
答案 1 :(得分:0)
使用此代码:
for line in minfil :
line = line.strip()
elements = line.split(",")
portfolio[str(elements[0])] = [(int(elements[1]),float(elements[2]), str(elements[3]))]