スクリプトの「現在の作業ディレクトリ」は、当初はスクリプトの場所ではなく、というユーザーがスクリプトを実行した場所であることがわかりました。ファイルパスの扱い方は?
スクリプトは/Desktop/Projects/pythonProject/myscript.py
であるが、私は、スクリプトを実行したとき、私は自分の端末内に/Documents/Arbitrary
でね、それはそれは現在の作業ディレクトリだし、それはだからopen('data.txt')
の試みは、ファイルが見つかりませんを与えるために起こっていることになるだろう場合正しいディレクトリを見ていない。
それで、どこから実行されているのか分からないと、スクリプトはファイルを開くはずです。これはどのように処理されますか?
私の最初の考えは、絶対パスを使用することでした。私のスクリプトがdata.txt
を開き、そのパッケージの横にpythonProject
という名前で保存されているとします。それから私はちょうどopen('/Desktop/Projects/pythonProject/data.txt')
と言うでしょう。
しかし、その中のすべてのパスを編集せずにプロジェクトを移動することはできないので、これは適切な解決策ではありません。
は、がスクリプトを実行するたびにスクリプトが置かれているディレクトリにある必要がありますか?それも正しいとは思わない。
これについて私が考えていない簡単な操作がいくつかありますか?あなたはちょうどスクリプトの冒頭にあるスクリプトの場所にos.chdir
となっていますか?
'__file__'を使ってスクリプトの場所を知ることができます。 – smarx
[現在実行中のファイルのパスと名前はどのように取得できますか?](http://stackoverflow.com/questions/50499/how-do-i-get-the-path-and-name) -of-the-currently-executing-executing) – congusbongus