owner_details = open ("owner_details","r")
for line in owner_details.readlines():
if RegistrationNumber in line:
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write(line)
vehicles_speeding.close()
print ("Details for registration",[RegistrationNumber],"have been added to the 'vehicles_speeding' file")
time.sleep(2)
view = input("Match found for registration number in 'owner_details' file. Do you wish to view details \n:")
view = view.upper()
if view == "YES":
print (line)
else:
continue
owner_details = open ("owner_details","r")
for line in owner_details.readlines():
if RegistrationNumber not in line:
add= input("No match found for registration number do you want to add details for registration number ? \n:")
add = add.upper()
if add == "YES":
name = input("enter vehicle owners full name \n:")
adress = input ("Enter vehicle owners adress \n:")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("\n"+"NAME: ")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write(name)
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("ADDRESS: ")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write(' '+adress)
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("REGISTRATION NUMBER: ")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write( ' '+RegistrationNumber+' ')
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("SPEED: ")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("%2.f"%(Speed))
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write(' '+"m/s")
vehicles_speeding.close()
print ("Details have been added to file")
如果在第一个for循环中找到注册号,如何停止代码执行第二个for循环。
答案 0 :(得分:0)
当您提出问题时,请提供更多详细信息。如果我理解你,那么你想要做的是在文件中搜索特定的数字;如果找到该号码,则打开另一个文件并进行记录,否则如果找不到该号码,则为用户提供将该号码添加到第一个文件的选项。您的代码非常低效:每次调用write()
时都会打开相同的文件,而当您执行时,您将使用2个循环。试试这个:
owner_details = open("owner_details","r")
vehicles_speeding = open ("vehicles_speeding","a")
for line in owner_details:
if RegistrationNumber in line:
vehicles_speeding.write(line)
print ("Details for registration",RegistrationNumber,"have been added to the 'vehicles_speeding' file")
view = input("Match found for registration number in 'owner_details' file.\nDo you wish to view details:").upper()
if view.startswith("Y"):
print(line)
break
else: # this branch is run, if the FOR loop completed without breaking
add = input("No match found for registration number.\nDo you want to add details for registration number?:").upper()
if add.startswith("Y"):
details = []
name = input("enter vehicle owners full name: ")
adress = input ("Enter vehicle owners address: ")
details.append("\nNAME: ") # Too many concatenations
details.append(name)
details.append("ADDRESS: ") # append is cheaper
details.append(adress) # than writing to the file every time
details.append("REGISTRATION NUMBER: ")
details.append(RegistrationNumber)
details.append("SPEED: ")
details.append("%2.f" %(Speed)) #not really sure what format u want
details.append(" m/s")
vehicles_speeding.write("".join(details)) # write everything at once
print("Details have been added to file")
vehicles_speeding.close() # now you can close them
owner_details.close()
为了提高效率,您可以为details
分配固定数量的空间以防止其增长(类似details = [""]*9
),然后填写空格。