Pythonで下のコードを書きファイルを引数から受け取った絶対パスで指定しているんですが、実行時にディレクトリを表す\がエスケープ処理されてしまい\という形になってしまいファイルが読み込めません。
これを防ぐにはどうしたらいいですか?
python
1# -*- coding: utf-8 -*- 2import sys 3 4# パスが指定されているか確認 5try: 6 filePath = sys.argv[1] 7except: 8 print("Not File Path!") 9 exit() 10 11# ファイルの存在チェック 12with open(filePath, 'r', encoding='utf-8') as f: 13 for line in f: 14 print(line)
追記
なぜエスケープ処理されるか判断したのか
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\ryoum\Downloads\ファイル名.txt'
エラーメッセージのパスですが、階層を変える¥の前に¥がもう一つついているので
どういう不具合が発生するか
\となっているため階層が変わらないためファイルが参照できない
エスケープ処理が入る条件
様々な場所にあるファイルを読み込んでみると共通点をみつけました。
ファイル名に・が入っていると今回のような事になります。
が悪さしている事がわかったのですが解決方法がわかりません
コマンドプロンプトにドラッグアンドドロップでファイルを落として指定してたんですがその際に・がなくなってパス指定されてしまってました。
手動で・をつけるとファイルを参照できます。
エラー
Traceback (most recent call last): File ".\download.py", line 12, in <module> with open(filePath, 'r', encoding='utf-8') as f: FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\ryoum\Downloads\新しいテキストドキュメント.txt'
回答3件
あなたの回答
tips
プレビュー