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な方法はありますか?