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

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

詳細はこちら
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Python

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

Q&A

解決済

2回答

2140閲覧

Cloud9におけるカレントディレクトリ

artg

総合スコア27

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Python

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

0グッド

0クリップ

投稿2020/01/01 15:26

編集2020/01/01 16:34

Cloud9に関して

例えば以下のような場所のsample.pyファイルがあったとします。
home/ec2-user/environment/data/sample.py

ここでos.getcwd()を実行すると、home/ec2-user/environment/dataが取得できることを期待していましたが、
実際はhome/ec2-user/environmentになってしまいます。
これはなぜでしょうか?

よろしくお願いいたします。

import os print(os.getcwd())

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

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

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

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

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

hayataka2049

2020/01/01 15:29

> sample.py sample.pyはどのようなファイルですか? > ここでos.getcwd()を実行すると とはどこで何をどうしたのですか?
artg

2020/01/01 16:35

追記いたしましたsampleプログラムを開き、RUNを押しました。
guest

回答2

0

単純に実行するプログラムファイルが存在するディレクトリを取得したいだけであれば、
(カレントディレクトリであるかは別にして)
まず、実行するプログラムのディレクトリ(ファイル名込み)は__file__で取得できますので、
あとは、os.path.dirnameでディレクトリを取得できると思います。

Python

1import os 2 3print(os.path.dirname(__file__))

投稿2020/01/01 17:14

frederick_1974

総合スコア303

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

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

0

ベストアンサー

プログラムファイルの存在するディレクトリと、そのプログラム実行時のカレントディレクトリは何の関係もありませんので、そういう期待は間違っています。

一般にIDEは、プロジェクト単位の開発が便利になるように設計されているはずです。

投稿2020/01/01 15:37

otn

総合スコア85890

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

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

artg

2020/01/01 16:39

ご回答ありがとうございます。 ではそれを一致させる方法はございますか?
HBenpitsu

2020/01/02 00:54 編集

os.chdir(os.path.dirname(__file__)) (因みに)総合開発環境でなくとも、カレントディレクトリと実行ファイルは違う場合があります。 たとえば、 ``` current └A └sub  └B ``` というディレクトリ構造で AからBをインポートしても、 Bを実行している際もAのカレントディレクトリを引き継ぎます。
otn

2020/01/02 00:07

スクリプトファイルのあるところをカレントディレクトリにしたい場合は、os.chdirします。 os.chdir(os.path.dirname(os.path.abspath(__file__))) ただ、そういう必要は普通は無いです。 一致させたいと思った理由を考え直しましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問