def test():
while True:
with open('patient.txt', 'r') as fr:
print('do you want to change your file?(y/n)')
a = input('please key in')
if a:
k = input('please key in your ID number')
r_k = int(k) - 1
for no,line in enumerate(fr):
if no == r_k:
print(line) # confirm line
trueline = line.strip('\n').split(',') # split for locating
print(trueline)
print('what do you want to change?')
print('1.age,2.gender,3.vaccine type.')
print('4.name,5.height,6.weight')
print('7.address,8.vaccination status')
print('9.blood type,10.medical history')
selection = input('please select one by number')
if selection.isdigit():
print('you are going to change:', trueline[int(selection)])
after = input('it will change to:', )
trueline[int(selection)] = after
with open('patientupdated.txt','w') as fw:
num = 0 #set count
for i in fr:
num += 1 # if not then count = count + 1
if num == k:
print(trueline)
save = ",".join(map(str, trueline)) + '\n'
print('save is ',save)
i = save
fw.write(i)
print(trueline)
continue
else:
print('error!!')
return
with open打开文件后,fr是个迭代器,也就是说外层的for no,line in enumerate(fr)遍历后的元素,在内层for i in fr里将不再存在。
所以一般是先把fr读入一个列表,然后再调用该列表,而不是直接遍历fr。