teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

追記

2019/05/19 08:43

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -10,7 +10,7 @@
10
10
  さて、この場合、解決するための方法は主に3つあります。
11
11
 
12
12
  0. 実行時カレントディレクトリからの正確な相対パスを調べて書く。カレントディレクトリの概念と相対パスの概念はわかっていることが前提になります(プログラミングやるならどのみち知っておいた方が良いんですが・・・)。また、違うカレントディレクトリから実行すると位置関係が変わってしまう訳なので、実はいまいちな方法です。
13
- 1. 絶対パスで書く。デスクトップに置いてあるファイルなら`r"C:\Users\username\Desktop\img.gif"`のようになります。先頭の`r`はバックスラッシュ(`\`)がエスケープと誤認されないために必要です。
13
+ 1. 絶対パスで書く。デスクトップに置いてあるファイルなら`file=r"C:\Users\username\Desktop\img.gif"`のようになります。文字列の先頭の`r`はバックスラッシュ(`\`)がエスケープと誤認されないために必要です。
14
14
  2. .pyファイルのパスを取得し、それと組み合わせてパスを書く。こうすると「単に.pyとの相対位置さえ合っていれば良い」ので、楽というか柔軟に場所を動かしたりできます。
15
15
 
16
16
 

3

****

2019/05/19 08:43

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
File without changes

2

修正・・・

2019/05/19 08:35

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -16,9 +16,17 @@
16
16
 
17
17
  3の場合、たとえば`game.py`と同一ディレクトリにimg.gifを置いて
18
18
  ```python
19
- import os
19
+ import os # 追加
20
20
 
21
+ # 中略
22
+
23
+ # 追加
21
- img = os.path.abspath(os.path.join(os.path.dirname(__file__), "img.gif"))
24
+ img_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "img.gif"))
25
+
26
+ # ...中略
27
+
28
+ img = tk.PhotoImage(file=img_path)
29
+
22
30
  ```
23
31
 
24
32
  のように取得すれば良いですね。

1

追記

2019/05/19 08:33

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
 
17
17
  3の場合、たとえば`game.py`と同一ディレクトリにimg.gifを置いて
18
- ```
18
+ ```python
19
19
  import os
20
20
 
21
21
  img = os.path.abspath(os.path.join(os.path.dirname(__file__), "img.gif"))