필자는 어떤 시점에서 문자열을 클립 보드에 넣어야하는 Python 3 응용 프로그램을 보유하고 있습니다. 시스템 명령어 echo
과 pbcopy
을 사용하고 있으며 제대로 작동합니다. 그러나 문자열에 아포스트로피가 포함되어있을 때 (그리고 다른 특수 문자를 알고있는 경우) 오류가 발생하여 종료됩니다. 다음은 코드 샘플입니다.Python3/OS X에서 아포스트로피가있는 문자열을 터미널 명령에 전달하는 방법은 무엇입니까?
import os
my_text = "Peoples Land"
os.system("echo '%s' | pbcopy" % my_text)
괜찮습니다. 당신이 문자열 "사람들의 땅"을 수정한다면,이 오류를 반환 :
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
내가 어떻게 든 쉘 명령에 전달하기 전에 문자열을 인코딩해야 생각을하지만, 난 여전히 방법을 모른다. 가장 좋은 방법은 무엇입니까?
코드에서이 제안을 구현하려고했지만 실패한 이유를 알아 내려고했습니다. 'shlex.quote()'를 사용할 때와 마찬가지로 여전히 작은 따옴표를 제거해야한다는 것을 알았습니다. 이제 괜찮아.;) –