0

abc.pyワークスペースディレクトリの下にファイルがあります。

in を使用os.listdir('/home/workspace/tests')abc.pyてすべてのファイルを一覧表示しています ( test1.py, test2.py...)

パスを生成したい、 '/home/workspace/tests'または'/home/workspace'ハードコーディングする代わりに。

試しos.getcwd()てみos.path.dirname(os.path.abspath(____file____))ましたが、代わりにテストスクリプトが実行されているパスが生成されます。

それについてどうやって行くのですか?

4

2 に答える 2

0

関係のない特定のフォルダーを参照でき、ハードコードしたくない唯一の方法は、それをパラメーターとしてスクリプトに渡すことです (検索: コマンドライン引数)

于 2014-05-21T13:05:49.203 に答える
0

絶対パスではなく相対パスを取得する方法について質問していると思います。

絶対パスは「/home/workspace」のようなものです

相対は次の「./../workspace」のようになります

スクリプトがあるディレクトリ (/home/workspace/tests) からアクセスしたいディレクトリ (/home/workspace) への相対パスを作成する必要があります。つまり、この場合、ディレクトリの 1 つ上のステップに移動します。木。

これを実行することで取得できます: os.path.dirname(os.path.join("..", os.path.abspath( __file__ )))

ワークスペース ディレクトリに 2 段階上、1 段階下に移動すると、同じ結果が得られる場合があります。 abspath( __ファイル__ ) ))

このようにして、絶対パスを知らなくても実際に任意のディレクトリにアクセスできますが、実行したファイルに対して相対的な場所を知っているだけです。

于 2014-05-21T14:01:14.387 に答える