質問: ファイルの存在を調べるif文が期待通りの動きをしません。 views.pyに ``` def index(request): if 'app/iddd.txt' is None: print("Error") ``` と書きました。views.pyもappディレクトリ内にあり、iddd.txtはappディレクトリ内にはないのですがなぜかこのif文が通らずprint("Error")が呼ばれません。app/iddd.txtの存在確認の方法が間違っているのでしょうか?app/iddd.txtの存在確認をし、ない場合print("Error")を呼ぶにはどうしたらよいのでしょうか?
回答: > > if 'app/iddd.txt' is None: > > > これはあくまでも**文字列**です。 Python側が気を利かせて勝手にファイルだと判断するわけないです。 少し調べれば方法はわかると思いますが。pythonでファイルの存在を確認する きじねこ - [迷信] コンパイラはプログラマの心を察してくれる > > 当たり前のことですが、コンパイラは単なるソフトウェアに過ぎません。できることはといえば、プログラム言語の仕様にしたがって、ソースコードを機械的に翻訳することだけです。そうしたコンパイラには、曖昧で複数の意味にとれるコードを見ただけで、それを書いたプログラマの人となりを考慮して判断することなどはできません。言葉足らずのコードを見ただけで、それを書いたプログラマが今抱えている問題を察して処理を補完してくれることもありません。 > > > Pythonはスクリプト言語なのでコンパイルの過程はありませんが、それでも同じです。 勝手にファイルと判断してくれるとしたら、逆に文字列を操作したいときに困るじゃないですか。 プログラムは融通は利かずとも、適切に指示すれば適切に動くことを理解してください。