6

私は持っている

foo = '/DIR/abc'

そして私はそれをに変換したい

bar = '\\MYDIR\data\abc'

だから、これが私がPythonでやっていることです:

>>> foo = '/DIR/abc'
>>> bar = foo.replace(r'/DIR/',r'\\MYDIR\data\')
  File "<stdin>", line 1
    bar = foo.replace(r'/DIR/',r'\\MYDIR\data\')
                                                 ^
SyntaxError: EOL while scanning string literal

ただし、代わりに入力して最後のバックスラッシュをエスケープしようとすると、次のbar = foo.replace(r'/DIR/',r'\\MYDIR\data\\')ような怪物が表示されます。

>>> bar2
'\\\\MYDIR\\data\\\\abc'

ヘルプ!これは私を狂気に駆り立てています。

4

4 に答える 4

6

2 番目の引数は、正規表現パターンではなく、文字列にする必要があります。

foo.replace(r'/DIR/', '\\\\MYDIR\\data\\')
于 2013-01-31T21:16:33.280 に答える