如何使if语句从文本文件的特定位置读取并停在特定位置,然后将其打印出来。例如,打印出一个患者的数据,而不是全部列表。初学者程序员在这里。谢谢
ID = input("please enter a refernce id to search for the patient : ")
info = open("data.txt", 'r')
if ID in info:
# This should return only one patient's information not all the text file
else:
print("not in file")
info.close()
答案 0 :(得分:0)
我们需要知道如何格式化文件的具体细节,以便给出确切的答案,但这是一种可能有用的方法。
首先,您的“信息”现在只是一个TextIOWrapper对象。您可以通过运行print(type(info))
来判断。如果格式只是纯文本,则需要使其info = open('data.txt', 'r').read()
来为您提供文本字符串,或者使info = open('data.txt', 'r').readlines()
来按行为文本列表。
假设数据看起来像这样:
Patient: Charlie
Age = 99
Description: blah blah blah
Patient: Judith
Age: 100
Description: blah blah blahs
您可以执行以下操作:
首先,找到并存储您要查找的ID的索引。其次,找到并存储一些表示新ID的字符串的索引。在这种情况下,这就是“患者”一词。最后,返回这两个索引之间的字符串。
示例:
ID = input("please enter a reference id to search for the patient: ")
info = open("data.txt", 'r').read()
if ID in info:
#find() returns the beginning index of a string
f = info.find(ID)
goods = info[f:]
l = goods.find('Patient')
goods = goods[:l]
print(goods)
else:
print("not in file")
遵循这些原则可以解决问题。根据文件的结构,可能有更好的方法。如果用户的输入不够具体,或者描述中分散了“病人”一词,那么事情可能会出错,但是想法仍然相同。您还应该对输入进行一些错误处理。希望对您有所帮助!祝您项目顺利。