2017-05-19 2 views
-3

\n을 인쇄 된 출력에 표시하려면 후행 + 선행이없이 '이 필요합니다. 현재 repr (열기 + 읽기 .txt)을 사용하고 있으므로 적절한 색인 생성/검색을 위해 '을 제거하는 가장 좋은 방법이 궁금합니다.앞뒤 인용 부호가없는 repr()?

repr('s')[1:-1] 
repr('s').strip("'") 

불행하게도 일부 문자는 내가 repr 같은 '로를 사용하여 도주 원하지 않는 이스케이프되고있다.

+4

* "strip is deprecated"* 인용이 필요합니다. 'strip'도's'의 사본을 만듭니다. – vaultah

+2

'print (string)'또는 문자열을 직접 사용하십시오.이 용도로 사용할 수 없습니다. – TemporalWolf

+4

'string.strip'은 더 이상 사용되지 않지만 ['str.strip'] (https://docs.python.org/2/library/stdtypes.html#str.strip)은 지원되지 않습니다. – vaultah

답변

1

당신은 왜 이것을하고 싶지는 않지만 데이터베이스 나 .csv 파일에 문자열을 저장할 계획 인 것으로 추측하고 라인 피드와 같은 비 인쇄 문자는 원하지 않습니다. SQL 해석기와 같은 다른 도구를 잘못 만들 수 있기 때문에 데이터에

정확한 예상 인 경우 인용 부호와 백 슬래시와 같이 이스케이프 처리하지 않으려는 문자를 이스케이프 처리하므로 repr()을 사용하지 마십시오. 대신, 당신이 인용하고 싶지 않은 인쇄 문자를 결정하십시오 (나는 유일한 가능성이있는 문자가 \n\t)라고 생각하고 직접 대체하십시오.

fixed_s = s.replace("\n",r"\n").replace("\t",r"\t") 

그러나 문자열을 일반적인 파이썬 사전 키로 사용하는 경우 조작하지 마시고 그대로 사용하십시오.

+0

당신은'\ n'을 탈출하고 싶을뿐입니다! 'replace '를 사용하는 것이 이제는 분명해 보입니다 ... 왜'r "\ n"'대''\\ n "'입니까? – JBallin

+1

두 가지 답변. (1) 정규 표현식과 Windows 경로를 많이 사용합니다. 그래서 원시 문자열은'\'이스케이프 문자보다 훨씬 자연스럽게 나에게옵니다. (2)이 경우 검색 문자열과 대체 문자열 간의 유일한 차이는 원시성이므로 유일한 문자 문자열 사용은 replace()의 의도를 강조합니다. – BoarGules

+0

당신이 옳다는 것이 확실합니다. 고맙습니다! – JBallin

0

repr()을 조기에 사용하고 있습니다. 입력이 아닌 출력에 사용하도록되어 있습니다.

print 문에 repr(string)을 입력하고 입력에서 제거하십시오.

관련 문제