首页 > 解决方案 > 从文件中读取和打印记录

问题描述

如果输入的变量预先存在于文件中,我需要能够从文件中读取并打印记录。我试图以“f”的形式打开文件,但这只会读取文件中的第一行,这是我的代码:

        problem = input("Please select from one of these: sink, faucet, toilet, shower, heater, other: \n")
        temporaryFile = open("plumberInfo.txt" , "r")
        for row in temporaryFile:
            record = row.split(",")
            if record[6] == problem:
                Pforename = record[1]
                Psurname = record[2]
                Pfee = record[3]
                Pexperience = record[4]
                Prate = record[5]
                print("You have selected", Pforename, Psurname, "they have", Pexperience , "years of experience and they specialise in", problem, "\n")
            else: 
                print("Invalid input")
                plumberSearch() #This part isn't relevant

同样在下面,我附上了文件的一些内容:

743,Auryn,Smith,42.00,6,44.50,faucet,extra
583,Michael,Lanlow,25.00,8,75.00,sink,extra
731,Hanna,Taylor,42.00,14,55.00,heater,extra
981,Tomie,Agen,32.00,6,44.50,toilet,extra

我不明白这个问题,因为当我通过 ID ([record0]) 搜索时它工作得很好。没有回溯错误,它只是说明无效输入,这意味着记录 [6] != 问题,但是它是相等的。

标签: python

解决方案


当我在我的机器上尝试代码时,打印record显示最后一项在末尾包含一个换行符。因此,当您搜索 sink 时,您实际上是在进行 search sink == sink\n,因此您会得到无效输入。

读入文件也读入新行,您需要注意。在进行比较之前,您需要将其删除。


推荐阅读