8

jsonファイルを読み込もうとしていますが、エラーが表示されますNo such file or directory:

with open ('folder1/sub1/sub2/sub2/sub3/file.json') as f:
    data = json.load(f)
print data

上記のファイル main.py は .py の外部に保持されますfolder1。これらはすべて、プロジェクト フォルダーの下に保持されます。

したがって、ディレクトリ構造は Project/folder1/sub1/sub2/sub2/sub3/file.json です。どこが間違っているのでしょうか?

4

3 に答える 3

14

ファイルディレクトリから始まるパスを指すことを好みます

import os
script_dir = os.path.dirname(__file__)
file_path = os.path.join(script_dir, 'relative/path/to/file.json')
with open(file_path, 'r') as fi:
    pass

これにより、作業ディレクトリの変更を気にする必要がなくなります。また、これにより、フルパスを使用して任意のディレクトリからスクリプトを実行できます。

python script/inner/script.py

また

python script.py
于 2013-09-23T08:26:29.787 に答える
1

メソッドを使用os.path.joinして、現在のディレクトリから始まる完全なパスを形成します。

何かのようなもの:

json_filepath = os.path.join('.', 'folder1', 'sub1', 'sub2', 'sub3', 'file.json')
于 2013-09-23T08:15:46.167 に答える
0

いつものように、最初のスラッシュはパスがルートから始まることを示します。相対パスであることを示すために、最初のスラッシュを省略します。

于 2013-09-23T07:51:25.450 に答える