2017-10-27 1 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'에 문제가있을 수 있으며 코드를 실행하면 탭으로 인식하고 바꾸기를 제대로 수행하지 못한다는 점을 명심해야합니다. –

관련 문제