web-dev-qa-db-ja.com

pythonバックスラッシュをスラッシュに置き換える

文字列のバックスラッシュをエスケープするにはどうすればよいですか:'pictures\12761_1.jpg'

生の弦について知っています。たとえば、XMLファイルから'pictures\12761_1.jpg'値を取得した場合、strをrawに変換するにはどうすればよいですか?

12
Vyalov V.

文字列.replace()メソッドを使用できます。

>>> print r'pictures\12761_1.jpg'.replace("\\", "/")
pictures/12761_1.jpg
17
Jeremy Banks

あなたが正確に尋ねたものではないことは知っていますが、これはよりうまく機能すると思います。ちょうどあなたのディレクトリの名前を持ち、os.path.join(directory、filename)を使用するほうがいいです

"os.path.join(path、* paths)1つまたは複数のパスコンポーネントをインテリジェントに結合します。戻り値は、空でない各部分に続く、パスと* pathsのメンバーを1つのディレクトリセパレータ(os.sep)だけで連結したものです。最後を除き、最後の部分が空の場合、結果はセパレータでのみ終了することを意味します。コンポーネントが絶対パスの場合、以前のすべてのコンポーネントは破棄され、結合は絶対パスコンポーネントから続行されます。

https://docs.python.org/2/library/os.path.html

0
Ohad

分割/結合を使用することもできます:

print "/".join(r'pictures\12761_1.jpg'.split("\\"))

編集:

あなたが使うかもしれない他の方法は、それが検索している間にデータを準備することです(例えば、アイデアは変数に割り当てる前に文字列を更新することです)-例えば:

f = open('c:\\tst.txt', "r")
print f.readline().replace('\\','/')

>>>'pictures/12761_1.jpg\n'
0