Impossible de créer un fichier .txt pour sauvergarder les données d'une app.

Haspic Messages postés 46 Statut Membre -  
Haspic Messages postés 46 Statut Membre -
Bonjour,

Je récemment suivi un tuto (https://www.youtube.com/watch?v=jE-SpRI3K5g) pour commencer à apprendre tkinter. Je l'ai donc fini, et tout marche bien quand je lance l'app depuis l'éditeur de code (j'utilise Pycharm).
Sauf que lorsque j'essaie de lancer le programme depuis un fichier .py et non depuis Pycharm, une partie ne fonctionne plus.
Dans le tuto, on créer une app qui permet de stocker de nombreux chemins d'accès de fichier .exe, qui lorsque l'on appuie sur un boutton, sont tous lancé. On sauvegarde aussi les chemins d'accès dans un fichier .txt, qui sont récupérées à la prochaine ouverture de l'app pour éviter de les chercher à nouveau à chaque ouverture de l'app. Depuis Pycharm, le fichier .txt est bien créé et utilisé au redémarrage de l'app. Mais quand je lance depuis un fichier .py, le fichier de sauvegarde n'est pas créé.

Voici le code:

import tkinter as tk
from tkinter import filedialog, Text
import os

root = tk.Tk()
apps = []

if os.path.isfile("save.txt"):
    print("et")
    with open("save.txt", "r") as f:
        tempApps = f.read()
        tempApps = tempApps.split(",")
        apps = [x for x in tempApps if x.strip()]

def addApp():

    for widget in frame.winfo_children():
        widget.destroy()


    filename= filedialog.askopenfilename(initialdir="/", title="Select File",
                                         filetypes=(("executables", "*.exe"),
                                                    ("all files", '*.*')))
    apps.append(filename)
    print(filename)
    for app in apps:
        label = tk.Label(frame, text=app)
        label.pack()

def runApps():
    for app in apps:
        os.startfile(app)

canvas = tk.Canvas(root, height=700, width=700, bg="#263D42")
canvas.pack()

frame = tk.Frame(root, bg='white')
frame.place(relwidth=0.8, relheight=0.8, relx=0.1, rely=0.1)

openFile = tk.Button(root, text="Open File", padx=10,
                     pady=5, fg='white', bg="#263D42", command=addApp)

openFile.pack()

runApps = tk.Button(root, text="Run Apps", padx=10,
                     pady=5, fg='white', bg="#263D42", command=runApps)

runApps.pack()

for app in apps:
    label = tk.Label(frame, text=app)
    label.pack()

root.mainloop()

with open('save.txt' , 'w') as f:
    for app in apps:
        f.write(app + ',')



Des idées?
A voir également:

1 réponse

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonjour, comment sais-tu que le fichier n'est pas créé?
à part cela, le programme fonctionne correctement?
0
Haspic Messages postés 46 Statut Membre
 
Le programme fonctionne bien sinon oui.
A part le fait qu'il ne lit pas le fichier non plus si j'en utilise un déjà créé

Et comment je sais que le fichier n'est pas créé, et bien je ne le vois pas là où il devrait être. (là où il est normalement créé quand j'utilise pycharm, entre autre le dans le même dossier que celui du programme)
0
yg_be Messages postés 24281 Statut Contributeur 1 584 > Haspic Messages postés 46 Statut Membre
 
donc quand tu exécutes une deuxième fois le programme, il ne trouve pas le fichier créé à la première exécution?
si j'étais à ta place, je rajouterais un print en ligne 55.
0
Haspic Messages postés 46 Statut Membre > yg_be Messages postés 24281 Statut Contributeur
 
rajouter un print en cette ligne ne servirais pas à grand chose, quand la boucle se finie, le programme se fermera et donc impossible de voir si ça à bien marché ou non
0