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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2445閲覧

[python][pygame]imageモジュール&osモジュールについて

mosquito

総合スコア19

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2016/05/28 04:55

編集2016/05/28 04:58

今回質問させてもらうことはpythonのモジュール「pygame」についてです。

pygameを使いウィンドウを作成し、そこに「画像」を描画したいと思いこんなコードを書きました。

python

1import pygame 2 ###略### 3img = pygame.image.load('test.png').convert.alpha()

のように、loadの引数に相対的パスを指定すると
「python.error : Could't open 'test.png'」
というようにエラーがでてしまいました。

調べてみるとあるサイトには「絶対パスなら表示できる」という書き込みがあったので、
早速、

python

1import pygame 2 ###略### 3img = pygame.image.load('/home/○○○/デスクトップ/pygame(自作ディレクトリ)/test.png').convert_alpha()

というように変えてみたところ、エラーを起こさず描画することができました。
が、これだと自分のPC以外には対応しないので、次に「その画像の絶対PATH」を取得しようと思いました。

python

1import os 2path = os.path.abspath('test.png') 3print(path)#受け取ったPATHを確認してみる

すると、結果は


/home/○○○/test.png


となりました。PATHに「デスクトップ/pygame」が抜けていたのですが、試しに先ほどの
「pygame.image.load()」を行ってみたところ、同じエラーが出てしまいました。
私はここで行き詰まりました。

そこで、質問したいことは

1:そもそも絶対パスを取得しなくてもディスプレイ上に描画する方法があるのか。
2:絶対パスを取得しなければいけないのであれば、完全な取得方法があるのか。
3:描画する方法で、ほかにあるのかどうかについてです。(pygame以外でもいいのですが、、、)


です。1,2,3の全てでなくても構わないのでご教授お願いします。
また、説明不足な点もあるかと思いますので、その点についての質問でも構いません。

なにとぞお願いします!
待ってます!

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

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

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

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

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

lightson

2016/05/28 08:20

使っているOSを教えてもらえますか。
lightson

2016/05/28 08:32

ptyhon スクリプトのある場所とtest.pngのある場所を教えて下さい。
mosquito

2016/05/28 09:07

依頼ありがとうございます。 os は ubuntu です。 python スクリプトとtest.png は同じディレクトリの中にあります。
guest

回答1

0

ベストアンサー

pythonスクリプトとtest.pngは、/home/○○○/デスクトップ/pygameにあるということですよね。
そのディレクトリにcdして、スクリプトを動かすとすると、そのパスがos.getcwd() でとれるので、 次のようにやってみてはいかがでしょうか

python

1img = pygame.image.load(os.path.join(os.getcwd(),'test.png')).convert.alpha()

投稿2016/05/28 10:25

lightson

総合スコア553

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

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

lightson

2016/05/28 11:47

abspathの結果が、/home/○○○/test.png になってしまうのは、pythonを/home/○○○のディレクトリから立ち上げているのではないでしょうか? スクリプトのあるディレクトリから起動すれば、一番最初のやり方でできるかもしれません。
mosquito

2016/05/28 13:49

ご回答ありがとうございます。 まったくその通りでした。 これもご説明しておけばよかったのですが、 実はPATH取得を確認するのにインタプリタを使っていたのですが、 その起動場所に問題がありました。 きちんとPATH取得をすることができました。大勘違いです。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問