2017-10-27 11 views
0

これは文字列置換用のコードですが、期待通りに機能しません。文字列をスラッシュに置き換えますか?

#!/usr/bin/python 
import sys 
import fileinput 
import string 

filename = 'C:\sample\test\test.txt' 
newfilename = string.replace(filename, '\\', '\\\\') 

予想される出力はnewfilenameあるべき"C:\\\sample\\\test\\\test.txt"であるが、それはfilenameと同じです。

予想される出力を得るにはどうすればよいですか?

答えて

5

これははるかに簡単になります:

filename = r"C:\sample\test\test.txt" 
newfilename = filename.replace('\\', '\\\\') 

print newfilename 
+0

この作品で、string.replace(filename, '\\', '\\\\')の代わりにお試しください!ありがとうございました! – user1164061

0

あなたの元のファイル名の文字列にバックスラッシュをエスケープする必要があります!現在、filenameC\sample<tab>est<tab>est.txtに設定しています。ここでは、タブ文字をとして表しています。

+0

このコードの目的はバックスラッシュをエスケープすることです! – user1164061

+0

あなたは悲しいことに、バックスラッシュをエスケープするコードを書き込んだら、そのバックスラッシュをすでに文字列リテラルに入れておくことはできません。それらを手動でエスケープするか、生の文字列を使用する(受け入れられた答えがそうであったように)必要があります。 –

0

filename.replace('\\', '\\\\')

+0

また、 '\ t'に問題があるかもしれません。コードを実行すると、TABとして解釈され、置換を適切に行わないと、それは留意すべきことです –

関連する問題