2012-03-23 3 views
3

파이썬의 % 문자열 대체를 트리거하지 않도록 문자열을 표시하는 방법이 있습니까?Python : 문자열에서 % s 치환 금지

특히, 파이썬 sftp 모듈을 사용하여 이름에 %가 포함 된 파일을 다운로드하려고합니다.

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 328, in getMessage 
    msg = msg % self.args 
TypeError: not enough arguments for format string 

을 : 그래서

self.logger.log(level, msg, *args) 

logging 때문에 % 표지판의 서식 문자열에 대해 불평 : SFTP를 모듈은 로깅 모듈을 사용하여 파일의 이름을 로그인을 시도 내가 통제하지 않기 때문에 파일 이름이나 sftp 모듈에서 파일 이름을 문자열 대체에 참여하지 않는 것으로 표시 할 수 있습니까?

+2

당신은 sftp에 버그로보고해야합니다 : self.logger.log (level, "% s"% msg, * args) – j13r

+0

동의 함, 방금 버그를 제출했습니다. – Parand

답변

5

mystring.replace('%', '%%')은 귀하의 필요에 맞을 수도 있습니다. %%%을 탈출합니다.

+1

이상하게도 작동합니다 - %를 이스케이프 처리하면 sftp 다운로드가 파일을 찾지 못하게됩니다 (이름이 원격 파일 이름과 더 이상 일치하지 않기 때문에).하지만 분명히 정상적으로 작동합니다. 내가 추측한다고 가정하지 말고 해봐야 했어. – Parand

관련 문제