

現在tkinterを用いてダイアログを開いています。  
ファイルのパスは取得したのですが、このファイルをf1,f2に代入したいです。  
どうすればよいでしょうか？

[code]

    import matplotlib.pyplot as plt
    import numpy as np
    import os
    import tkinter
    from tkinter import messagebox
    from tkinter import filedialog
    
    root = tkinter.Tk()
    root.title('微笑山') #タイトル
    root.geometry('400x200') #サイズ 横x縦
    
    #selctボタンを押したときの処理
    def select_click():
        messagebox.showinfo('select','真のデータ')
        messagebox.showinfo('select','測定データ')
        fileType = [('Excelファイル','*.txt')] #ファイルタイプをExcelファイルに指定
        fileType = [('Excelファイル','*.txt')] #ファイルタイプをExcelファイルに指定
        iniDir1 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
        iniDir2 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
        filepath1 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir1)
        filepath2 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir2)
        messagebox.showinfo('選択したファイル',filepath1)
        messagebox.showinfo('選択したファイル',filepath2)
    
    #ボタンを作成
    selectButton = tkinter.Button(root, text='fast Select',command=select_click)
    selectButton.pack()
    
    root.mainloop()
    
    
    
    x1_list=[] # data1格納用のx_listを定義
    z1_list=[] # data1格納用のz_listを定義
    x2_list=[] # data2格納用のx_listを定義
    z2_list=[] # data2格納用のz_listを定義
    
    f1=open('root') 
    f2=open('filepath2') # プロットしたいデータが入っているファイルをr(読み込み) t(テキスト)モードで読み込む
    
    #data1読み込み
    for line in f1:
        data1 = line[:-1].split(' ')
        x1_list.append(float(data1[0]))
        z1_list.append(float(data1[1]))
    #data２読み込み
    for line in f2:
        data2 = line[:-1].split(' ')
        x2_list.append(float(data2[0]))
        z2_list.append(float(data2[1]))
    ##
    plt.xlabel('X') # ｘ軸のラベル
    plt.ylabel('Z') # y軸のラベル
    
    plt.plot(x1_list, z1_list, color="White", alpha=0.8, linewidth=4.0, label="data1")
    plt.plot(x2_list, z2_list, color="White", alpha=0.8, linewidth=4.0, label="data2")
    plt.legend()
    plt.fill_between(np.append(x1_list, x2_list[::-1]), np.append(z1_list, z2_list[::-1]),where=z2_list>=z1_list, facecolor='green', interpolate=True)#二線の間の色を表す
    plt.fill_between(np.append(x1_list, x2_list[::-1]), np.append(z1_list, z2_list[::-1]),where=z2_list<=z1_list,facecolor='red', interpolate=True)#二線の間の色を表す
    
    
    # その他，描画用オプション
    plt.xticks(fontsize=10)
    plt.yticks(fontsize=10) 
    plt.ylim([-21.62, -21.46])
    plt.grid(True) #グラフの枠を作成
    plt.savefig("cm.png")
    plt.show()
    fig = plt.figure()
    
    
[/code]


CC BY-SA 4.0
2019-11-11T02:55:58.400
60401
2019-11-12T04:15:28.713
36532
question
python python3 numpy tkinter
tkinterのダイアログファイルのパスを引数として扱う


グローバル変数でやってみます  
kunifさんご回答ありがとうございます。


CC BY-SA 4.0
2019-11-12T04:15:28.713
60435
2019-11-12T04:15:28.713
36532
60401
answer