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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Python 3.x

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

Q&A

解決済

2回答

1728閲覧

RaspberryPi上でPythonを用いたカレントディレクトリパス取得ができない。

Lazialize

総合スコア58

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Python 3.x

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

0グッド

0クリップ

投稿2018/05/05 09:39

前提・実現したいこと

RaspberryPi上でPythonプログラムを実行し、
現在のディレクトリを取得したいです。

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

現在、os.path.dirname(os.path.abspath(.name.)を用いて絶対パスを取得しているのですが、
/home/pi/program/で.pyファイルを実行すると
/home/piが返ってきます。
(_.name._の.はマークダウン回避)

該当のソースコード

python

1def get_path(): 2 absplutepath = os.path.dirname(os.path.abspath(__name__)) 3 return absplutepath 4 #/home/pi/program/でこのコードを実行すると/home/pi/が返ってくる。

原因や回避法をご存知の方、どうかご教示の程よろしくお願い致します。

環境

Raspberry Pi 3 Model B
Python 3.6.0

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

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

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

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

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

y_waiwai

2018/05/05 09:42

__name__ にはなにがはいってますか?
guest

回答2

0

ベストアンサー

RaspberryPiは触ったこともないので、外していたらすみません。

ファイルのあるディレクトリを知りたいなら、
参照すべきなのは__name__ではなく__file__かと思います。

カレントディレクトリを取得したいなら、それはそれで別の方法があります。

投稿2018/05/05 09:46

LouiS0616

総合スコア35658

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

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

Lazialize

2018/05/05 09:57

そうなのですか。 カレントディレクトリを取得する方法を調べて このコードが出てきたので、こちらを使っていたのですが__file__のほうが良いのですね。 ちなみに、他の方法とは具体的にどういう物があるのでしょうか。
LouiS0616

2018/05/05 10:01

__name__も__file__もただの文字列に過ぎないので、表示しながらいろいろ試してみると良いですよ。 --- > ちなみに、他の方法とは具体的にどういう物があるのでしょうか。 カレントディレクトリは、os.getcwd() で一発で取得できます。 モジュールのあるパス == カレントディレクトリ は常に真ではないことにご注意を。
Lazialize

2018/05/05 10:45

お早い回答ありがとうございます。 いろいろと試してみたいと思います。 勉強になりました!
guest

0

参考情報

  • How to print current pwd?

https://python-forum.io/Thread-How-to-print-current-pwd?pid=20478

  • pythonでシェルスクリプト実行(カレントディレクトリ取得したり、cdしたり)

http://www.stockdog.work/entry/2017/08/11/151903

  • 実行しているファイルが格納されているディレクトリのパスを取得したい。

https://qiita.com/neko_the_shadow/items/09ff3a423954a2adfe18

file と pwd は直接に関係はありません。
$ python foo.py のように実行している場合は、 foo.py の direcory が、current directory と一致しているだけです。

投稿2018/05/06 06:29

katoy

総合スコア22324

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問