如何在终止后导入另一个 python 文件

How to import another python file after terminating

这是一个图像识别代码,允许用户登录并使用另一个 Python 脚本。如果识别出面部,则中断面部检测,然后允许登录用户访问另一个 Python 脚本。代码不能 运行 两者,一个应该然后另一个开始。下面是示例代码

Login=0
while True: 
    ret, frame = video_capture.read()

    rgb_frame = frame[:, :, ::-1]

    face_locations = fr.face_locations(rgb_frame)
    face_encodings = fr.face_encodings(rgb_frame, face_locations)

    for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):

        matches = fr.compare_faces(known_face_encondings, face_encoding)

        face_distances = fr.face_distance(known_face_encondings, face_encoding)

        best_match_index = np.argmin(face_distances)
        if matches[best_match_index]:
            Print("successfully loged in")
            Login=1
    if Login==1:
        break 
        import file

不幸的是,代码在不提供对其他文件的访问的情况下中断,它只是中断并终止代码。请帮我解决这个问题。

那是因为您的 import file 语句出现在 break 之后。一旦到达break,就会离开它所在的循环,不执行同一个循环内break之后的行。

只需删除此处的中断

    if Login==1:
        #break  # this makes the if clause to break and doesnt run import file
        import file

break 语句跳出for 循环,因此您需要在与forif 语句相同级别使用import file应该在 for

里面
Login=0
while True: 
    ret, frame = video_capture.read()

    rgb_frame = frame[:, :, ::-1]

    face_locations = fr.face_locations(rgb_frame)
    face_encodings = fr.face_encodings(rgb_frame, face_locations)

    for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):

        matches = fr.compare_faces(known_face_encondings, face_encoding)

        face_distances = fr.face_distance(known_face_encondings, face_encoding)

        best_match_index = np.argmin(face_distances)
        if matches[best_match_index]:
            Print("successfully loged in")
            Login=1
        if Login==1:
            break 
    import file

您需要在 break 之前切换所需的函数,因为它会完全退出并放弃循环的其余部分

  if Login==1:
         
        import file
        break