subprocess.Popen()ファイル パスを文字列として受け取り、それらを解析し、コマンド名を追加し、実行のために渡されるリストを作成する Python スクリプトを作成しています。このスクリプトは、Unix と Windows の両方のファイル パスを処理するためのものであり、最終的には両方のシステムで実行する必要があります。
これを Unix で実行するときに、誤ってエスケープ文字 (例: \Users\Administrator\bin) を含む Windows パスを指定すると、Python は埋め込ま\bれた文字をバックスペース文字として解釈します。そうならないようにしたい。
私の知る限り、文字列変数を生の文字列として表す関数やメソッドはありません。修飾子は'r'、文字列定数に対してのみ機能します。
これまでのところ、私が得ることができた最も近いものはこれです:
winpath = "C:\Users\Administrator\bin"
winpath = winpath.replace('\b','\\b')
winpathlist = winpath.split('\\')
この時点で、winpathlist には['C:','Users','Administrator','bin']ではなくが含まれている必要があり['C','Users','Administrator\x08in']ます。
winpath.replace()取得する可能性のある他のエスケープを処理するためにへの呼び出しを追加することはできますが、\aそれはできません。\f\n\r\t\v\x
これを行うためのよりPythonicな方法はありますか?