0

だから私はこのようなディレクトリ構造を持っています

  Execute_directory--> execute.py
  |
  Algorithm ---> algorithm.py
            |
            |--> data.txt

したがって、私は実行ディレクトリ内にいて、python パスへの次のパスを含めました。

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + "/../Algorithm")

algorithm.py には data.txt を読み取るコードがあります

したがって、 execute.py を実行すると、 execute.py が algorithm.py を呼び出し、 data.txt が読み取られます。algorithm.py を見つけることはできますが、data.txt を見つけることはできませんか??

         IOError: [Errno 2] No such file or directory:'data.txt'

私が間違っていることの手がかりはありますか?? ありがとう

4

3 に答える 3

2

これは通常、相対ファイル名が期待する場所に関連していないという問題です。の内容を印刷しos.path.abspath(filename)て確認してください。何かおかしくなった場合は、最初に(を初期化するときにfilename)絶対パスを指定すると修正されます。

于 2012-04-13T07:52:35.987 に答える
1

sys.pathを使用するときにモジュールを探す場所を Python に指示するために使用されますimport。でのファイルの検索には影響しませんopen。ファイルを開くと、相対パスは「現在の作業ディレクトリ」からの相対パスになります。これは、で確認しos.getcwdて変更できますos.chdir

おまけ: 起動時に の値を確認するsys.pathと、 が含まれていることがわかります''。これにより、モジュールの現在の作業ディレクトリもチェックするように Python に指示されます (およびハードコードされた の絶対パスもチェックされsys.pathます。そのため、モジュールを含むフォルダーに (コマンド プロンプトを使用して) 「いる」間に Python インタープリターを起動すると、 、モジュールを探す場所を指定する必要はありません。

于 2012-04-13T09:21:38.153 に答える