文件读取Python - IndexError:列表索引超出范围

时间:2016-05-27 09:54:34

标签: python

def compare():
        file1=open("Rules.txt")
        for rules in file1:
            rule = rules.split(",")
            break
        membersFile=open("Members.txt")
        for members in membersFile:
            member = members.split(',')
            break
        print (rule[0] + "," +member[1] + ","+ rule[1] + "," +member[2] + ","+  rule[2] + "," + member[3])
        if (rule[0]<=member[1]) and (rule[1]<=member[2]) and (rule[2]==member[  3]):
            print (member[0] + " is Continued")
        else:
            print (member[0] + " is Discontinued")
compare()

我收到以下错误:

print (rule[0] + "," +member[1] + ","+ rule[1] + "," +member[2] + ","+  rule[2] + "," + member[3])
IndexError: list index out of range

1 个答案:

答案 0 :(得分:0)

您需要实际读取该文件。有点像这样:

def compare():
        with open("Rules.txt") as file1:
            for rules in file1.readlines():  // <-note readlines()
                rule = rules.split(",")
                break
        with open("Members.txt") as membersFile:
            for members in membersFile.readlines():  // <-here too
                member = members.split(',')
                break
        print (rule[0] + "," +member[1] + ","+ rule[1] + "," +member[2] + ","+  rule[2] + "," + member[3])
        if (rule[0]<=member[1]) and (rule[1]<=member[2]) and (rule[2]==member[  3]):
            print (member[0] + " is Continued")
        else:
            print (member[0] + " is Discontinued")

但实际上,break语句似乎也是错误的,并且split(",")也可能 - 如评论中一样 - 确实需要输入的正确格式化示例,以及更好的描述预期的行为。

相关问题