【发布时间】:2021-07-31 05:30:52
【问题描述】:
我之前尝试过一些代码,但没有成功。我的意思是当我在一个文件中搜索一个单词时,它只显示它的第一条记录,然后转向询问返回选项。它完全忽略了第二条记录。此外,当我搜索错误的客户名称时,它不会打印“不存在”之类的语句。这是我的练习,可能是一个简单的问题,但我仍然是初学者。希望任何人都可以帮助我。谢谢,感谢所有帮助。
def search_payment():
print("Please Enter Customer Username For Searching")
search_username = input("Customer Username: ").upper()
show_search_payment = open("customer_order_records.txt", "r")
view_payment = show_search_payment.read()
view_payment_by_line = view_payment.splitlines()
show_search_payment.close()
for line in view_payment_by_line:
data = line.split(",")
if search_username in data[0]:
if search_username == data[0]:
print("Searching.....")
time.sleep(1)
print("Done Searching!\n\n\n*----- "+ search_username + " CUSTOMERS ORDERS AND PAYMENT RECORDS -----*")
print("*" * 45)
print(" Username\t\t: ", data[0],"\n Date\t\t\t: ", data[1],"\n Ordered\t\t: ", data[2],"\n Total Quantity : ", data[3],"\n Total Amount\t: ", data[4],"\n Payment Method\t: ", data[5])
print("*" * 45)
while True:
back = input("\n(b) Back: ")
if back == "b" or back == "B":
search_order_payment()
else:
print("***Invalid Input! Please Try Again\n")
search_payment()
else:
print("Customer Username Does Not Exist! Please Try Again!\n")
while True:
try_again = input("(b) Back (c) Continue : ")
if try_again == "b" or try_again == "B":
search_order_payment()
elif try_again == "c" or try_again == "C":
search_payment()
else:
print("***Invalid Input! Please Try Again\n")
search_payment()
这是我在 txt 文件中的内容:
ABC,Sun Jul 18 10:00:56 2021,NASI GORENG BIASA;RM6.00,1,RM6.00,CREDIT CARD,
WONG,Sun Jul 18 11:18:57 2021,ROTI CANAI KOSONG;RM1.60 TEH TARIK;RM2.60,3,RM5.80,TOUCH' N GO E-WALLET,
STANLEY,Mon Jul 19 11:05:18 2021,NASI GORENG SEAFOOD;RM10.50 NESCAFE NAI;RM2.80,2,RM13.30,CREDIT CARD,
WONG,Mon Jul 19 12:05:26 2021,ROTI CANAI PLANTA;RM3.90 TEH TARIK;RM2.60,3,RM10.40,TOUCH' N GO E-WALLET,
MAY,Mon Jul 19 12:20:51 2021,MURTABAK AYAM CHEESE;RM9.50 MILO;RM2.80,3,RM21.80,TOUCH' N GO E-WALLET,
【问题讨论】:
标签: python search text-files record show