🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Open XML

Open XMLは、マイクロソフト社が開発したオープンなXMLベースのオフィススイート用のファイル形式です。従来のバイナリ形式のフォーマットに代わって、XMLを用いた規格を標準ファイル形式として採用しています。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

1回答

1171閲覧

open関数 python

11390

総合スコア20

Open XML

Open XMLは、マイクロソフト社が開発したオープンなXMLベースのオフィススイート用のファイル形式です。従来のバイナリ形式のフォーマットに代わって、XMLを用いた規格を標準ファイル形式として採用しています。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2019/11/11 07:24

編集2019/11/11 07:59

現在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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

open("filepath1","r")

第一引数は"filepath1"という文字列ですがこれでいいのですか?
open(filepath1,"r")
じゃないでしょうか

投稿2019/11/11 07:29

y_waiwai

総合スコア88040

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

11390

2019/11/11 07:31

すいません。ミスです
y_waiwai

2019/11/11 07:34

で、それでどういうエラーが出てるんでしょうか。 エラーメッセージをそのままコピペで提示しましょう 質問は編集できるので、質問文に追記してください
11390

2019/11/11 07:39

返信ありがとうございます。 私の一つ前の質問に載っています。 回答がなかったので単純化して聞いたのが今回の質問になります。
y_waiwai

2019/11/11 07:45

一つ前とは? まあ、質問に書けないと言うならどうしようもないですが。
y_waiwai

2019/11/11 07:52

後付けで質問に書かれてないことをどーこー言われても困りますね
11390

2019/11/11 07:57

すいませんでした。 これです お願いします。
y_waiwai

2019/11/11 08:03

繰り返しますが、 エラーが出るならエラーメッセージを提示しましょう。 質問は編集できるので、質問に追記してください。
11390

2019/11/11 08:11

載せました
y_waiwai

2019/11/11 08:58

> NameError: name 'filepath1' is not defined 'filepath1' という変数は定義されていない、というエラーですね
y_waiwai

2019/11/11 09:00

関数の中で定義された変数は、その関数の中でしか有効ではありません その他で使用するなら、グローバル変数として定義しましょう
11390

2019/11/11 09:10

グローバル変数として? def使うものですか?
y_waiwai

2019/11/11 09:17

filepath1、 filepath2 は、 select_click関数の中出定義されてます(最初に値が代入されている) これだと、この関数の外では、この変数は未定義になってしまいます この変数を関数の外/他の関数で使いたい場合は、この変数を関数の外で定義して、グローバル変数として扱う必要があります
y_waiwai

2019/11/11 09:19

「python グローバル変数」でぐぐるとそこらへんの解説出てきます
11390

2019/11/11 09:36 編集

ググりましたけど、ここではfilepath1をグローバル変数として定義すればいいんですか?
y_waiwai

2019/11/11 10:18

そう定義すれば、そのエラーは出なくなりますが、それが正解かどうかってのは別の話です あなたがそのコードをどうしたいか、ってのをよく考えましょう。
11390

2019/11/12 04:27

出来ました ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問