2013-10-29 2 views
0

나는이가 연결

'python -c "import '+impMod+'; help('+module+'.'+method+') if \''+method+'\' in dir('+module+') else from '+impMod+' import '+method+' help('+method+')"' 

처럼 python -c에 전달 된 명령을 생성하고하여 파이썬 명령을 구축하고 다음과 같은 출력을 얻을 :

python -c "import os; help(os.path.pathconf) if 'pathconf' in dir(os.path) else from os import pathconf help(pathconf)" 

을 전하려고해도

python -c "import os; help(os.path.pathconf) if 'pathconf' in dir(os.path) else from os import pathconf; help(pathconf)" 

하지만, 내가 왜 SyntaxError를 얻을지 모르겠다 : 구문이 올바르지 않다.

도움이 되겠습니다. 감사합니다.

+0

당신이'';; '' – jramirez

+1

그럴 필요가 없다면, 그 라인을 더 확인해 보시기 바랍니다.''from os import pathconf'다음에'help()'를 소개 할 때 맞춰 보겠습니다. –

+0

그래 파이썬은 그렇지 않습니다. 그것들을 사용하십시오. – jramirez

답변

2

문과 표현식이 혼합되어 있습니다. from .. import .. 구문은 구문이므로 표현식 안에 표시 할 수 없지만 표현식을 ... if ... else ... 표현식에 사용하고 있습니다. 또한 쉘 문자열 안에 개행 문자를 사용할 수 있습니다.

python -c "import os 
if 'pathconf' in dir(os.path): 
    help(os.path.pathconf) 
else: 
    from os import pathconf 
    help(pathconf)" 

파이썬에서 그렇게하려면 트리플 쿼트를 사용하는 것이 좋습니다.

+2

첫 번째 if 블록이 True 인 경우 help()가 두 번 실행됩니다. –

+0

@san - 변경되었습니다. 감사합니다. –

+0

가 작동했습니다. –