python - 从文件中读取和打印记录
问题描述
如果输入的变量预先存在于文件中,我需要能够从文件中读取并打印记录。我试图以“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] != 问题,但是它是相等的。
解决方案
当我在我的机器上尝试代码时,打印record
显示最后一项在末尾包含一个换行符。因此,当您搜索 sink 时,您实际上是在进行 search sink == sink\n
,因此您会得到无效输入。
读入文件也读入新行,您需要注意。在进行比较之前,您需要将其删除。
推荐阅读
- angular2-routing - 'typeof AuthGuard' 类型的参数不可分配
- android - 在我的应用程序中到处获取最后一个当前位置 android
- javascript - 如何获取放置在 ng-template 中的组件实例?
- javascript - 如何改进 .png 到 .jpeg 的转换
- node.js - 无法使用 nodeJS 连接 MongoDb
- .net-core - AcquireTokenSilentAsync 无法访问在 azure AD 中注册的 Web api
- java - 如何将此 TextView 的实例状态保存在片段中?
- php - php 我得到未捕获的错误函数名称必须是一个字符串
- javascript - 如何使用 alt 标签制作可访问、响应迅速、灵活的蒙版图像
- javascript - 如何在切换选项卡时解决 highchart 中的 xaxis 更新问题