python – Tkinter me abre muchas veces el mismo archivo txt seleccionado

Abre demasiadas veces el mismo archivo

codigo el cual se encargar de abrir el archivo, en tkinter tiene un boton que llama a la funcion ReproducirEscritorio pero cuando lo ejecuto para llamar un archivo .txt u otro archivo se abre demasiadas veces.

pero antes de esta funcion hay otra la cual permite ver un listado completo de todos los archivos y los almacena en una listbox

def ReproducirEscritorio():
    #engine.say("Abriendo Directorio")
    #engine.runAndWait()
    #lstMaterias.delete(0,END)
    home = os.environ('USERPROFILE')
    carpetas = os.listdir(home)
    ruta = home + "\Desktop"
    archivos = os.listdir(ruta)
    try:
        for i in range(len(archivos)):


            #print(str(i) + ')' + str(archivos(i)))
            ejecutar = ruta + '\' + archivos(int(entrada.get()))
            #justo en estas lineas hace que el archivo se ejecute varias veces y no solo una        
            os.startfile(ejecutar)

    except:
        engine.say("Error, esta fuera de las opciones")
        engine.runAndWait()
        MessageBox.showinfo("Aviso de actividad ","Opción fuera de rango") 

javascript – ¿Como mostrar un contenido las veces que un dato (length) tenga registrado?

Estoy desarrollando una pagina web que tiene unas tarjetas con información de un producto.
La informacion la obtengo de Firebase realtime Database.
La función es la siguiente:

function GetInfoProduct(){

  let PathTitleProduct1;

  PathTitleProduct1 = "/Productos/";

  firebase.database().ref(PathTitleProduct1).on('value', (snapshot) => {
    let DatagettedTitleProduct1 = '';
    if(snapshot.val()){
      DatagettedTitleProduct1 = snapshot.val();
      console.log(DatagettedTitleProduct1);
      let TitleProduct1 = document.getElementById('title_product_1');
      TitleProduct1.innerHTML = DatagettedTitleProduct1;
    }
  })

}

La funcion anterior me muestra en consola un resultado de tipo Objeto y me muestra la longitud que tiene este, me muestra que tiene una longitud de 3 valores y dentro de esos 3 valores tiene mas datos.
Lo que quiero saber es como puedo hacer que dependiendo a la longitud del objeto me muestre tantas tarjetas es decir si tengo 3 de logitud que se muestren 3 tarjetas aunque en el html solo tenga registrada una tarjeta y que en cada tarjeta la informacion sea dependiendo a la que se obtiene. el codigo html de una tarjeta es la siguiente.

                    <div class="product_card">

                        <img loading="lazy" src="https://www...exemplo.png" alt="ejemplo">

                        <p id="title_product_1"></p>

                        <p id="subtitle_product_1"></p>

                        <div class="variaciones">

                            <p id="variations_title">Variaciones</p>

                            <p id="v1"></p>

                            <p id="v1"></p>

                            <br>

                        </div>

                        <div class="SizeAndPrice">

                            <p id="SaPtitle">Tamaños y Precios</p>

                            <div class="size">

                                <p id="sizep">Individual</p>
                                <p id="sizep">Pareja</p>
                                <p id="sizep">Familiar</p>

                            </div>

                            <div class="price">

                                <p id="pricep"></p>
                                <p id="pricep"></p>
                                <p id="pricep"></p>

                            </div>                        

                        </div>

                        <div class="btn_buy">

                            <p>Agregar al Carrito</p>                                

                        </div>

                    </div>                    
                    
                </div>

java – ¿Porque Se imprime dos veces el mensaje en pantalla?

La idea del programa es que cada vez que evalúe los casos del switch entre otra vez en el ciclo while y vuelva a decir.. “Write action (buy, fill, take, remaining, exit):”. Lo que no entiendo de mi codigo es porque immprime Write action (buy, fill, take, remaining, exit): ” dos veces en vez de imprimirlo una sola vez y evaluar de nuevo los casos.

package com.company;

import java.util.Scanner;

public class Main {
public static Scanner scanner = new Scanner(System.in);

public static void cantidadesAImprimir(long water, long milk, long coffeBeans, long disposableCups, long money) {

    System.out.println("The coofe machine has:");
    System.out.println(water + " of water");
    System.out.println(milk + " of milk");
    System.out.println(coffeBeans + " of coffee beans");
    System.out.println(disposableCups + " of disposable cups");
    System.out.println(money + " of money");
}

public static void main(String args()) {

    long water = 400;
    long milk = 540;
    long coffeBeans = 120;
    long disposableCups = 9;
    long money = 550;

    String option = "";

    while (!option.equals("exit")) {
        System.out.println("Write action (buy, fill, take, exit): ");
        option = scanner.nextLine();
        switch (option) {
            case "buy":
                System.out.println("What do you want to buy? 1 - espresso, 2 - latte, 3 - cappuccino:");
                int option2 = scanner.nextInt();
                switch (option2) {
                    case 1:
                        water -= 250;
                        coffeBeans -= 16;
                        money += 4;
                        disposableCups -= 1;
                        break;

                    case 2:

                        water -= 350;
                        milk -= 20;
                        coffeBeans -= 75;
                        money += 7;
                        disposableCups -= 1;

                        break;

                    case 3:

                        water -= 200;
                        milk -= 100;
                        coffeBeans -= 12;
                        money += 6;
                        disposableCups -= 1;
                        break;
                    default:
                        System.out.println("Incorrec Option");
                }
                System.out.println("I have enough resources, making you a coffee!");
                break;

        case "fill":
            System.out.println("Write how many ml of water do you want to add: ");
            long waterToAdd = scanner.nextLong();
            water += waterToAdd;

            System.out.println("Write how many ml of milk do you want to add: ");
            long milkToAdd = scanner.nextLong();
            milk += milkToAdd;

            System.out.println("Write how many grams of coffee beans do you want to add: ");
            long coffeToAdd = scanner.nextLong();
            coffeBeans += coffeToAdd;

            System.out.println("Write how many disposable cups of coffee do you want to add: ");
            long cupsToAdd = scanner.nextLong();
            disposableCups += cupsToAdd;
            break;

        case "take":
            System.out.println("I gave you " + money + "$");
            money = 0;
            break;
}

}

Ejemplo de salida 1: si escribo buy: el programa imprime:

I have enough resources, making you a coffee!
Write action (buy, fill, take, exit):
Write action (buy, fill, take, exit):

Ejemplo de salida 2: si escribo fill: el programa imprime:

Write how many ml of water do you want to add:
1
Write how many ml of milk do you want to add:
2
Write how many grams of coffee beans do you want to add:
3
Write how many disposable cups of coffee do you want to add:
4
Write action (buy, fill, take, remaining, exit):
Write action (buy, fill, take, remaining, exit):

como pueden notar La linea Write action (buy, fill, take, remaining, exit): se imprime dos veces y no entiendo porque. Gracias de antemano.