現在tkinterを用いてダイアログを開いています。
openは第一引数にファイル名を挿入するものと理解しています。ファイルのパスは取得したのですが、このファイルをf1,f2に代入したいです。
どうすればよいでしょうか?
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(filepath1,"r") f2=open(filepath2,"r") # プロットしたいデータが入っているファイルをr(読み込み) t(テキスト)モードで読み込む #data1読み込み for line in f1: data1 = line[:-1].split(' ') x1_list.append(float(data1[0])) z1_list.append(float(data1[1])) #data2読み込み for line in f2: data2 = line[:-1].split(' ') x2_list.append(float(data2[0])) z2_list.append(float(data2[1])) ## plt.xlabel('X') # 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()
エラー
Traceback (most recent call last): File "<ipython-input-1-32532a3f4e19>", line 1, in <module> runfile('C:/Users/Administartor/Desktop/いいべ.py', wdir='C:/Users/Administartor/Desktop') File "C:\Users\Administartor\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile execfile(filename, namespace) File "C:\Users\Administartor\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/Administartor/Desktop/いいべ.py", line 38, in <module> f1=open(filepath1,"r") NameError: name 'filepath1' is not defined
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/11 07:31
2019/11/11 07:34
2019/11/11 07:39
2019/11/11 07:45
2019/11/11 07:50
2019/11/11 07:52
2019/11/11 07:57
2019/11/11 08:03
2019/11/11 08:11
2019/11/11 08:58
2019/11/11 09:00
2019/11/11 09:10
2019/11/11 09:17
2019/11/11 09:19
2019/11/11 09:36 編集
2019/11/11 10:18
2019/11/12 04:27