質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.47%
ファイル

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

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1621閲覧

画像フォルダを読み込みたい

719236260906

総合スコア4

ファイル

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

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/11 01:30

前提・実現したいこと

Python のカレントフォルダについてよくわかりません。
Pythonでつくるゲーム開発入門講座の診断アプリを作成しているのですが、コード通りに打っても「ファイルが存在しない」と出ます。
tkinterで画像の出し方を検索してみたのですが、「同じファイルに入れる」というのがどうしても理解できません。どのようにすればいいでしょうか。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "C:/Users/User/Desktop/ooooooooooooooooooooooooooooo.py", line 27, in <module> gazou = tkinter.PhotoImage(file="sumire.png") File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 4093, in __init__ Image.__init__(self, 'photo', name, cnf, master, **kw) File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 4038, in __init__ self.tk.call(('image', 'create', imgtype, name,) + options) _tkinter.TclError: couldn't open "sumire.png": no such file or directory

該当のソースコード

Python

1import tkinter 2 3KEKKA = [ 4"前世が猫だった可能性は極めて低いです", 5"いたって普通の人間です", 6"特別、おかしなところはありません", 7"やや、猫っぽいとことがあります", 8"猫に近い性格のようです", 9"猫にかなり近い性格です", 10"前世は猫だったかもしれません", 11"見た目は人間、中身は猫の可能性があります" 12] 13def click_btn(): 14 pts = 0 15 for i in range(7): 16 if bvar[i].get() == True: 17 pts = pts + 1 18 nekodo = int(100*pts/7) 19 text.delete("1.0", tkinter.END) 20 texr.insert("1.0", "<診断結果>\nあなたの猫度は" + str(nekodo) + "です。\n" + KEKKA[pts]) 21 22root = tkinter.Tk() 23root.title("診断アプリ") 24root.resizable(False, False) 25canvas = tkinter.Canvas(root, width=800, height=600) 26canvas.pack() 27gazou = tkinter.PhotoImage(file="sumire.png") 28canvas.create_image(400, 300, image=gazou) 29 30button = tkinter.Button(text="診断する", font=("Times New Roman", 32), bg="lightgreenn", command=click_btn) 31button.plase(x=400, yy=480) 32text = tkinter.Text(width=40, height=5, font=("Times New Roman", 16)) 33text.place(x=320, y=30) 34 35bvar = [None]*7 36cbtn = [None]*7 37ITEM = [ 38"高いところが好き", 39"ボールを見ると転がしたくなる", 40"びっくりすると髪の毛が逆立つ", 41"ネズミのおもちゃが気になる", 42"匂いに敏感", 43"魚の骨にしゃぶりつきたくなる", 44"夜、元気になる", 45] 46for i in range(7): 47 bvar[i] = tkinter.BooleanVar() 48 bvar[i].set(False) 49 cbtn[i] = tkinter.Checkbutton(text=ITEM[i], font=("Time New Roman", 12), variable=bvar[i], bg="#dfe") 50 cbtn[i].place(x=400, y=160+40*i) 51root.mainloop() 52

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

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

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

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

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

guest

回答2

0

自己解決

Python

1import os 2os.getcwd() 3 4os.chdir('C:Users/User/Desktop/')

ディレクトリパスを打ち込むことで解決しました

投稿2021/12/11 05:44

719236260906

総合スコア4

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

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

0

tkinter.TclError: couldn't open "sumire.png": no such file or directory

Pythonでつくる ゲーム開発 入門講座 サポートページ からダウンロードできる ZIP ファイルの中に sumire.png が含まれている様なので、これを同じディレクトリに置くと良いかと思います。

投稿2021/12/11 01:42

melian

総合スコア19825

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

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

719236260906

2021/12/11 01:49

回答ありがとうございます。 不勉強で大変申し訳ないのですが、「同じディレクトリに置く」というのはどのようにするのでしょうか?
melian

2021/12/11 01:57

ooooooooooooooooooooooooooooo.py を実行しているディレクトリに置きます。
719236260906

2021/12/11 02:35

oooooooooooooooooooooooooooo.pyを実行しているところに何かしらのコードを書く=置くということでしょうか?
melian

2021/12/11 02:37

はい、sumire.png を置きます。
719236260906

2021/12/11 02:42

それはどのように置く、どのようなコードなのでしょうか?調べてみても理解が及ばずどれが自分の問題を解決するものなのかがわかりませんでした。
melian

2021/12/11 02:48

コードではなく、コピーになります。具体的には、回答に書きましたウェブページから ZIP ファイルをダウンロードして、その ZIP ファイルを展開します(パスワードの入力が必要で、それは書籍の373ページに書かれているそうです)。そうしますと、展開先に sumire.png がありますので、それを oooooooooooooooooooooooooooo.pyを実行しているところにコピーして下さい。そして oooooooooooooooooooooooooooo.py を実行します。
719236260906

2021/12/11 03:05

コピーしてそのままペーストするとinvalid syntaxになりました
melian

2021/12/11 03:14

ペーストというのが判りませんが、oooooooooooooooooooooooooooo.py を変更する必要はありません。
719236260906

2021/12/11 03:18

実行しているところにコピーするとはどのようにするのでしょうか?
melian

2021/12/11 03:22 編集

sumire.png ファイルを実行しているディレクトリにコピーします(ファイルのコピーです)。
719236260906

2021/12/11 03:34

sumire.pngを新規フォルダに用意して、そこにoooooooooooooooooooooooooooo.py をコピーしたものを置くということでしょうか
melian

2021/12/11 03:41

逆です。oooooooooooooooooooooooooooo.py が置かれているフォルダに sumire.png ファイルをコピーします。この時、oooooooooooooooooooooooooooo.py を変更する必要はありません。sumire.png をコピーしたら、oooooooooooooooooooooooooooo.py のあるフォルダで python oooooooooooooooooooooooooooo.py を実行します。
719236260906

2021/12/11 03:46

Pythonのあるフォルダでやってみたのですが無理でした。Pythonのあるフォルダではなく、Pythonの実行フォルダでやるということでしょうか?Pythonの実行フォルダがなんなのかもw借りません。すみません。
melian

2021/12/11 03:50

違います。そうですね、、、これ以上の説明は私の能力では不可能ですので、誰か近くにいる人にファイルのコピーを頼んで下さい。もしくは別の誰かが回答してくれるまでお待ち下さい。私からは以上です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問