2013-01-22 2 views
-3

탈출는이 코드를 발견 따옴표 대 작은 따옴표

os.system("\"{0}\"".format(path)) 

내가 하나에서 변경하여 궁금 해서요 따옴표를 붙이면 어떤 장점이 있습니까?

여기에 원래 내가에서 뽑아 커밋입니다 :별로 정말 https://github.com/mattn/legit/commit/84bd1b1796b749a7fb40e0b734d2de29ddc9d3d9

+0

이 파이썬 질문인가? –

+0

무슨 이점이 있는지 궁금하십니까? 작은 따옴표가 아닌 큰 따옴표로 묶인 원하는대로 문자열을 출력합니다. 그리고 이것은 Ruby 나 Rails 질문이 아니므로 태그를 제거했습니다. –

+0

ok 죄송합니다. 그 주위를 클릭하고 있었지만, 무슨 일이 일어 났는지 궁금했습니다. – Brandt

답변

1

하지만 문자 할당 및 인쇄를위한 엄지 손가락을 사용 따옴표의 규칙입니다. 그렇게하면 첫 번째 장소에 있으면 안되는 것을 인쇄하지 않아도됩니다.

작은 따옴표는 리터럴 형식이기 때문에 유용합니다. 당신은 '안녕하세요/n'을, 당신은 작은 따옴표에 넣어 경우 당신에게 줄 것이다 그대로 '안녕하세요 같은 것을 필요로하는 경우 '안녕하세요/' 실제로, 그러나이 하이/

를 인쇄합니다 there/n ' 큰 따옴표를 사용하면 "안녕하세요"라는 메시지가 나오고 줄 바꿈을 할 수 있습니다.

+0

역동적 인 내용이 없다고 말하고 있기 때문에 그들이 이것을 이해한다는 것을 확실히하기 위해? – Brandt

+0

저는 파이썬 전문가가 아니지만, 제가 생각하기에 위와 같습니다. 작은 따옴표가있는 첫 번째 예제에서는 리터럴이 대괄호 {}를 인수의 일부로 전달합니다. 반면에 큰 따옴표는 대괄호의 표현을 전달합니다. 문자열 보간은 Ruby에서 비슷합니다. 큰 따옴표는 "# {@ user}"를 보간 할 것이며, 작은 따옴표 '{@user}'는 그렇지 않습니다. 도움이 되었기를 바랍니다. – PericlesTheo

+0

응답 해 주셔서 감사합니다.이 질문은 내가 무엇을 가장 잘 묻고 있는지 설명합니다. – Brandt

1

Windows의 경우 명령 줄 인수는 shell 또는 cmd.exe가 아닌 it-self 프로그램에 의해 구문 분석됩니다. 그리고 대부분의 Windows 프로그램은 따옴표로 묶인 문자열을 일반적으로 큰 따옴표로 구문 분석합니다. python.exe은 동일합니다. 유닉스 OS에서, 명령 행 인자는 쉘에 의해 파싱된다. 그리고 대부분의 쉘은 단일/이중 따옴표를 모두 구문 분석합니다. 물론, 큰 따옴표는 $ 또는 쉘이 처리 할 수있는 것을 확장합니다. 그러나 경로에는 $이 포함되지 않습니다.

이 변경 사항은 여러 OS에서 합법적으로 작동하도록 해결할 수 있습니다.

enter image description here enter image description here

+0

오 와우는 파이썬에 대해 알지 못했습니다. 의견을 보내 주셔서 감사합니다. 레일즈에서 루비에서 나오고 더 많은 파이썬 프로그래밍을하기 때문에 정말 도움이됩니다. 나도 나에게이 작은 따옴표를 설명했다. 나는 루비에서 "# {happy_string}"과 같은 결과를 호출 할 수 없다는 것을 의미합니다.이 동일한 호출을 작은 따옴표로 사용하려고하면 루비에서 작동하지 않습니다. '# {} – Brandt

+0

죄송합니다. 마지막 코멘트를 완료하지 못했습니다. 루비 '# {happy_string}'에서는 루비가 '루비'라고 생각하기 때문에 루비에서는 작동하지 않습니다. # {happy_string} 대신 happy_string을 대체하십시오. 설명하기가 어렵습니다. – Brandt