2014-11-19 5 views
1

나는 파이썬으로 작업하는 것이 처음이다. 그리고 내가 무엇을 검색하든 상관없이, 내가 무엇을 시도하든 여전히 여전히 존재한다는 문제가있는 것처럼 보인다.연속 문자 뒤의 예기치 않은 문자

exec 기능을 사용하여 시스템 명령을 실행하려고합니다.

나는 시도 다음 : 첫 번째 /

에 커서를 유효하지 않은 구문을 반환

exec("/usr/sbin/something --arg") 

내가 줄 연속 문자 후 예상치 못한 문자를 반환

exec("\\usr\\sbin\\something --arg") 

을 시도 이 경우에는 내 인수 g의 마지막 문자에 커서가 있습니다.

저는 지난 한 해 동안 해결책을 찾고 있었지만 아무것도 도움이되지 않았습니다. 오류가 발생하지 않고이 명령을 어떻게 간단히 실행할 수 있습니까?

예, 내 줄 끝은 정확합니다.

답변

4

exec를 읽도록 문자열의 앞에서 r을 넣어보십시오. docs에서 :

exec(object[, globals[, locals]])

이 기능은 파이썬 코드의 동적 실행을 지원합니다. object은 문자열 또는 코드 개체 여야합니다. 문자열 인 경우 문자열은 Python 문 집합으로 구문 분석되어 구문 오류가 발생하지 않는 한 실행됩니다.

os.system을 사용할 수 있습니다, 시스템 명령을 실행합니다 :

import os 
os.system("/usr/sbin/something --arg") 
+0

:/정말 ... 내가 그걸 빨리 알았 으면 좋겠어. : D 고마워! * 편집 * 효과가 있었지만 할 수있을 때 받아 들일 것입니다. –

+0

다시 고마워! 해피 코딩! –

-3

은 아마 문자열 또는 코드 객체로 표현된다 파이썬 코드을 실행하는 데 사용됩니다 exec(r"\\usr\\sbin\\something --arg")

+1

사실'r'과'R'을 모두 사용했습니다. 오류가 변경되지 않았습니다. –

+1

문자열 리터럴 앞에'r'을두면 [raw-string]이됩니다 (https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals). 이스케이프 시퀀스는 처리되지 않습니다. 그러나 OP의 경우에는 그가 백 슬래시를 모두 벗어 났으므로 이것은 불필요합니다. – iCodez