ログファイルを読み取って処理する Python ツールを作成しようとしています。
すべきことの 1 つは、ログファイルにリストされているパスを使用することです (これはバックアップ ツールのログファイルです)。
/Volumes/Live_Jobs/Live_Jobs/*SCANS\ and\ LE\ Docs/_LE_PROOFS_DOCS/JEM_lj/JEM/0002_OXO_CorkScrew/3\ Delivery/GG_Double\ Lever\ Waiters\ Corkscrew_072613_Mike_RETOUCHED/gg_3110200_2_V3_Final.tif
残念ながら、提供されたパスは適切にエスケープされておらず、Python で適切にエスケープするのに問題がありました。おそらく python はこれに最適なツールではありませんが、その柔軟性が気に入っています。
正規表現エスケープ関数を使用するとエスケープされる文字が多すぎます。pipes.quote メソッドはスペースをエスケープしません。正規表現を使用して ' ' を '\ ' に置き換えると、最終的には
/Volumes/Live_Jobs/Live_Jobs/*SCANS\\ and\\ LE\\ Docs/_LE_PROOFS_DOCS/JEM_lj/JEM/0002_OXO_CorkScrew/3\\ Delivery/GG_Double\\ Lever\\ Waiters\\ Corkscrew_072613_Mike_RETOUCHED/gg_3110200_2_V3_Final.tif
これは二重にエスケープされ、 のような Python 関数には渡されませんos.path.getsize()
。
私は何を間違っていますか??