为什么我的程序会跳过输出中显示的名称? 我对处理记录并不是非常熟悉,但我可以与他们合作。
我需要添加允许我删除捐赠者及其号码的代码。我询问用户是否要在阅读此人时删除每个人。但是,我的程序没有正确读取字段
这是原始文本文件的样子(“name:”和“number:”
不是文本文件的一部分。我把它放在那里,以更具体地说明记录的格式。)
姓名:迈克
数量:5
姓名:李
数量:0
名称:ramage
编号:2
姓名:詹姆斯
号码:6
姓名:mack
数量:10
更具体的目标:
我希望我的程序读取名称,提示用户删除,
如果是,请不要将名称或号码写入临时文件(我稍后将重命名),
如果不是,请将名称和号码写入临时文件。
这是运行后的输出
你想删除mike(y / n)吗? y
迈克已被删除
你想删除(是/否)? y
已删除
你想删除0(y / n)吗? y
0已被删除
你想删除ramage(y / n)吗? n
你想删除(是/否)? n
你想删除6(y / n)吗? y
6已被删除
你想删除mack(y / n)吗? n
import os
def main():
openOriginal = open("donors.txt", "r")
openNew = open("tempDonor.txt", "w")
readW = openOriginal.readline()
while readW != "":
readW = readW.rstrip("\n")
readN = openOriginal.readline()
print(readW)
print(readN)
s_ask = input("Would you like to delete " + readW + " (y/n)? ")
if s_ask != "y":
openNew.write(readW + "\n")
openNew.write(readN + "\n")
else:
print(readW, "has been deleted")
readW = openOriginal.readline()
openOriginal.close()
openNew.close()
main()
答案 0 :(得分:0)
您需要考虑空白行。实际上,您的算法一次仅处理2行数据。修改算法以一次处理3行:
name: james
number: 6
blank line
name: mack
number: 10
blank line
etc..