ホームページ >バックエンド開発 >Python チュートリアル >Python でファイル パスを構築するときにバックスラッシュ エスケープ シーケンス エラーを回避するにはどうすればよいですか?
生の文字列を使用してバックスラッシュをエスケープする
Python では、文字列リテラルを指定するときに、バックスラッシュを使用してエスケープ シーケンスを表すことができます。改行文字 (n) またはタブ文字 (t)。ただし、文字列にリテラルのバックスラッシュを含める必要がある場合は、バックスラッシュ文字のあいまいさが原因でエラーが発生する可能性があります。
この問題を解決するには、接頭辞が付いている生の文字列を使用できます。文字「r」または「R」。生の文字列では、バックスラッシュは、文字列内の位置に関係なく、リテラル文字として扱われます。
たとえば、次のコードを考えてみましょう。
path = os.getcwd() final = path + '\xulrunner.exe ' + path + '\application.ini' print(final)
このコードでは、SyntaxError が発生します。バックスラッシュはエスケープ シーケンスとして解釈されますが、これは望ましい動作ではありません。これを解決するには、文字列の前に「r」を付けることができます:
final = path + r'\xulrunner.exe ' + path + r'\application.ini'
この変更により、バックスラッシュはリテラル文字として扱われ、目的の出力が生成されます:
C:\Users\me\xulrunner.exe C:\Users\me\application.ini
追加の解決策: os.path.join を使用する
次の代替解決策この問題は、特にファイル パスを結合するために設計された os.path.join 関数を使用することです。この関数は、適切な区切り文字 (Windows ではバックスラッシュ、他のプラットフォームではスラッシュ) を自動的に処理し、バックスラッシュをエスケープする必要がなくなります。
final = os.path.join(path, 'xulrunner.exe') + ' ' + os.path.join(path, 'application.ini')
このアプローチは、一般に、生の文字列を使用するよりも堅牢で移植性が高いと考えられています。ファイルパスを結合しています。
以上がPython でファイル パスを構築するときにバックスラッシュ エスケープ シーケンス エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。