7

ログファイルを読み取って処理する 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()

私は何を間違っていますか??

4

2 に答える 2

4

これを試して:

  myfile = open(r'c:\tmp\junkpythonfile','w')

「r」は生の文字列を表します。

\ like を使用することもできます

myfile = open('c:\\tmp\\junkpythonfile','w')
于 2013-08-08T22:03:00.040 に答える