1. ホーム
  2. python

[解決済み] 別ディレクトリのファイルを開く (Python)

2022-03-02 19:58:43

質問

私はいつもPythonのディレクトリトラバーサルのテーマで一種の混乱があり、私は好奇心を持っている状況があります。私は現在私がいるディレクトリと本質的に平行なディレクトリにアクセスしたいファイルを持っています。このディレクトリ構造があるとします。

\parentDirectory
    \subfldr1
        -testfile.txt
    \subfldr2
        -fileOpener.py

fileOpener.py で subfldr2 から抜け出し、subfldr1 に入って testfile.txt の open() を呼び出すスクリプトを作ろうとしています。

スタックオーバーフローを見たところでは、人々は osos.path を使えばいいのですが、スクリプトのオリジンより下のサブディレクトリにあるファイルに関する例しか見つかりませんでした。

この作業をしていて、スクリプトをsubfldr1に再配置すればすべてうまくいくことに気づきましたが、これをどのように達成するのか、私の好奇心は刺激されます。

EDIT: この質問は特にWindowsマシンに関係するもので、ドライブレターとバックスラッシュがどのように関係するのかわかりません。

解決方法は?

ファイルへのフルパスがわかっている場合は、このような方法をとればよいでしょう。しかし、相対パスに関する質問であれば、私はよく知らないので、調査してテストする必要があります。

path = 'C:\\Users\\Username\\Path\\To\\File'

with open(path, 'w') as f:
    f.write(data)

編集する

絶対値ではなく、相対値で行う方法を紹介します。Windowsで動作するかどうかはわかりませんので、テストしてみてください。

import os

cur_path = os.path.dirname(__file__)

new_path = os.path.relpath('..\\subfldr1\\testfile.txt', cur_path)
with open(new_path, 'w') as f:
    f.write(data)

2を編集します。 について簡単に説明します。 __file__ これは、実際のファイルからではなく、対話的に実行されるため、対話型インタープリターでは動作しません。