Bonjour,

Je me heurte à une petite difficulté que je n'arrive pas à résoudre :

Nom : schema.PNG
Affichages : 355
Taille : 33,7 Ko

J'ai un fichier (GUI) contenant une instruction d'ouverture de fichier et qui viens ensuite insérer les infos dans un widget Text.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
###### FONCTION OUVERTURE DE FICHIER ######
def openfile():
    global cmd_file
    global log_data
    global logname
    cmd_file = filedialog.askopenfilename(title="Open SMW Log file", filetypes=(("Text Files", "*.log"),))
    filename = os.path.basename(cmd_file)
    path_entry.insert(END, cmd_file)
    cmd_file = open(cmd_file, 'r')
    log_data = cmd_file.read()
    log_area.insert(END, log_data)
    logname = (os.path.splitext(filename.upper())[0])
    serialnumber.set(str(logname))
    print(cmd_file)
 
serialnumber = StringVar()
logname =''
Dans un autre fichier Variables.py, j'ai des fonctions de recherche sur le texte ouvert précedemment :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
import tkinter as tk
from tkinter import *
from tkinter import filedialog
 
cmd_file = ''
logdata = ''
upsdate = ''
upsrating = ''
upstype = ''
#ups_date = StringVar()
#ups_rating = StringVar()
#ups_type = StringVar()
#ups_date.set(str(upsdate))
#ups_rating.set(upsrating)
#ups_type.set(upstype)
 
target = "UPS date (MM-dd-yyyy HH:mm) = "
target2 = "Nominal system rating = "
target3 = "UPS with IBS System configuration"
 
def upsdateread():
    with open(cmd_file, 'r') as datafile:
        linenum = 0
    for line in datafile.readlines():
        linenum += 1
        if target in line:
                upsdate = line[30:46]
                print(upsdate)
 
def upsratingread():
    with open(cmd_file, 'r') as datafile:
        linenum = 0
    for line in datafile.readlines():
        linenum += 1
        if target2 in line:
                upsrating = line[24:46]
                print(upsrating)
 
def upstyperead():
    with open(cmd_file, 'r') as datafile:
        linenum = 0
    for line in datafile.readlines():
        linenum += 1
        if target3 in line:
                upstype = line[0:46]
                print(upstype)
J'ai mis les stringvar() et les .set en attente car apres plusieurs essais entre les deux fichiers je n'ai rien réussis à faire de concret..

Je pense que le probleme viens du fait que hors de la fonction openfile() le contenu du fichier n'est pas disponible puisque stocker dans mon widget text.

Comment pourrais-je faire pour récupérer ces informations ?

En vous remerciant par avance