значения не передаются переменным вне функции Tkinter - PullRequest
0 голосов
/ 06 июля 2019

Я использую TKinter для отображения интерфейса и прошу импортировать 2 файла, CSV и TXT.после открытия файлов path следует сохранить на f1 и f2, а затем перейти к внешнему * .py scrip os.system(*.py f1 f2)

для внутреннего использования на сценариях Tkinter. Панды DF и файл txt успешно выполнены и прочитаны.проблема, с которой я столкнулся, возникает, когда я хочу сохранить путь в переменной, а затем создать строку для вставки в os.system

Я установил print() для проверки пути.

# tk Frame for request files
import sys
import os
import tkinter as tk
import pandas as pd
from tkinter import filedialog
import csv

root= tk.Tk()

canvas1 = tk.Canvas(root, width = 400, height = 400, bg = 'lightsteelblue2', relief = 'raised')
canvas1.pack()

f1 = ''
f2 = ''

def importCSV ():
    global df

    fin = filedialog.askopenfilename(title = "Select file",filetypes = (("csv files","*.csv"),("all files","*.*")))
    print(fin)
    f1 = fin
    df = pd.read_csv(fin)

def importTXT ():
    global df

    fin2 = filedialog.askopenfilename(title = "Select file",filetypes = (("txt files","*.txt"),("all files","*.*")))
    print(fin2)
    f2 = fin2
    with open(fin2) as f1:
        for line in f1:
            line.strip()

print(f1 + f2)
# prepare values to pass to os.system()
# pass = 'python Eje_SysArg.py ' + f1 + ' ' + f2


def CrearCom ():
    global df
    #os.system(pass)
    os.system('python Eje_SysArg.py f1 f2')

ImportAsButton_CSV = tk.Button(text='Import Parameters "CSV"', command=importCSV, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas1.create_window(200, 100, window=ImportAsButton_CSV)

ImportAsButton_TXT = tk.Button(text='Import command "TXT"', command=importTXT, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas1.create_window(200, 200, window=ImportAsButton_TXT)

CreateAsButton = tk.Button(text='Create Script', command=CrearCom, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas1.create_window(200, 300, window=CreateAsButton)

root.mainloop()

текущий результат для графического интерфейса:

D:\python\Multicomando>python GUI_v1.py

D:/python/Multicomando/SCCPGT.csv
D:/python/Multicomando/comando.txt
Eje_SysArg.py
fin
fin2

ожидаемый результат ('python Eje_SysArg.py D:/python/Multicomando/SCCPGT.csv D:/python/Multicomando/comando.txt')

...