

FileNotFoundError が出ます。  
views.pyに

[code]

    f = open('test.txt', 'r')
    f.close()
    
[/code]

と書きました。このコードを実行した時に、

> FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'

とエラーが出ました。  
しかし、views.pyと同じ階層にtest.txtはあり、なぜFileNotFoundErrorが出るのかわかりません。'test.txt'を'./test.txt'に変えても、同じエラーが出ます。  
なぜエラーが出るのでしょうか？どのようにエラーを直せるでしょうか？


CC BY-SA 3.0
2018-04-01T12:48:11.713
42850
2018-04-02T21:10:57.893
2018-04-02T10:37:42.257
25936
27972
question
python python3
ファイルが存在するのにFileNotFoundErrorが出ます


ファイル名はフルパスで指定する必要があります

> views.pyと同じ階層にtest.txtはあり、

カレントディレクトリはソースファイルの場所にはありません


CC BY-SA 3.0
2018-04-02T06:04:27.420
42864
2018-04-02T06:04:27.420
27481
42850
answer


`test.txt`が問題なく存在するなら、`views.py`を`views.py`があるディレクトリ以外から実行しているように見受けられます。

[code]

    #!/usr/bin/env python3
    from os import chdir
    
    chdir("/path/to/") # views.py's direcotory
    f = open('test.txt', 'r')
    f.close()
    
    exit(0)
    
[/code]

という感じで`chdir`を使うことで`open`を実行する際のディレクトリを指定することができます。

もちろん、[わわい](https://ja.stackoverflow.com/users/27481/%e3%82%8f%e3%82%8f%e3%81%84)さんの[回答](https://ja.stackoverflow.com/a/42864/25936)にあるように`open`に対して`test.txt`のフルパスを指定してもいいと思います。


CC BY-SA 3.0
2018-04-02T11:23:55.710
42873
2018-04-02T21:10:57.893
2018-04-02T21:10:57.893
25936
25936
42850
answer