#はじめにこの記事はPythonでopen()関数でパス指定のトラブルシューティングの記録です。同じようなトラブルを抱えている方への参考になれば幸いです。
#結論・raw文字列を使おう。・フルパス、相対パスを意識しよう。
#結論にいたるまでpythonを学び始めて計算結果をテキストファイルに保存してみようってなったのでひとまず参考書のコードをPyCharmにポチポチして実行してみる。
hoge1.pyf = open("C:\py_study\text.txt", "r", encoding="utf-8")s = f.read()print(s)f.close()#result#OSError: [Errno 22] Invalid argument: 'C:\\py_study\text.txt'まぁ、何かしらエラーは出ると思ってました。そこでエラーを確認すると「\text.txt」の「\t」がタブ文字になってることに気づく。。。解決策としてwindowsのパス指定のときraw文字列が便利って学んだことを思い出してパス指定にraw文字列を使ってみる。
hoge2.pyf = open(r"C:\py_study\text.txt", "r", encoding="utf-8")s = f.read()print(s)f.close()#result#aaaa#bbbb#cccc#abcdできた。
カレントディレクリにファイルを作成していればraw文字でフルパスを指定しなくてもOKちなみにカレントディレクトリは
import osprint(os.getcwd())で確認できます。
カレントディレクトリが「C:\py_study」だったので
hoge3.pyf = open("text.txt", "r", encoding="utf-8")s = f.read()print(s)f.close()でもファイルの中身が確認できました。
おわり。